Skip to content

Instantly share code, notes, and snippets.

@0minus273
Last active August 29, 2015 14:04
Show Gist options
  • Save 0minus273/566910cef8b6bfa6d21e to your computer and use it in GitHub Desktop.
Save 0minus273/566910cef8b6bfa6d21e to your computer and use it in GitHub Desktop.
well.c
struct whack_message msg;
struct whackpacker wp;
//где whackpaker имеет вид:
struct whackpacker {
struct whack_message *msg;
unsigned char *str_roof;
unsigned char *str_next;
int n;
};
wp.msg = &msg;
// хочу понять, длину чего вычисляет строчка:
ssize_t len = wp.str_next - (unsigned char *)&msg;
//при том, что wp.str_next заполняется следующим образом:
err_t pack_whack_msg (struct whackpacker *wp)
{
err_t ugh = NULL;
wp->str_next = wp->msg->string; //string - пустая строка
wp->str_roof = &wp->msg->string[sizeof(wp->msg->string)];
//тут_всякое_нерелевантное_бла_бла
wp->str_roof - wp->str_next < (ptrdiff_t)wp->msg->keyval.len) /* chunk (sort of string 28) */
wp->msg->keyval.ptr = NULL;
wp->str_next += wp->msg->keyval.len; //len=0
return ugh;
}
//потом там в коде происходит
write(sock, &msg, len)
//и мне бы очень хотелось понять, какую часть msg таки код посылает
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment