Jump to content

Ayuda con programacion de llamada al sistema (LINUX)


Recommended Posts

Hola

Para la u tengo q hacer un trabajo, el asunto es que me toco trabajar sobre el protocolo DHCP en Linux, baje el codigo fuente y lo que me pide el profesor es encontrar donde se realiza una llamada al sistema y editar esta, solo de forma simple nada complejo, el asunto es ese, editar la llamada al sistema

No se mucho de esto, me ha costado un mundo, pero al parecer encontre lo que me y me gustaria saber si alguien con mas experiencia me puede ayudar.

 

dejo un trozo de codigo con lo que me parece que me sirve xD

 

int parse_dhcpmessage (dhcp_t *dhcp, const dhcpmessage_t *message)
{
const unsigned char *p = message->options;
const unsigned char *end = p; /* Add size later for gcc-3 issue */
unsigned char option;
unsigned char length;
unsigned int len = 0;
int retval = -1;
struct timeval tv;
struct route_head *routers = NULL;
struct route_head *routes = NULL;
struct route_head *csr = NULL;
struct route_head *mscsr = NULL;
bool in_overload = false;
bool parse_sname = false;
bool parse_file = false;
end += sizeof (message->options);
if (gettimeofday (&tv, NULL) == -1) {
 logger (LOG_ERR, "gettimeofday: %s", strerror (errno));
 return (-1);
}
dhcp->address.s_addr = message->yiaddr;
dhcp->leasedfrom = tv.tv_sec;
dhcp->frominfo = false;
dhcp->address.s_addr = message->yiaddr;
strlcpy (dhcp->servername, (char *) message->servername,
  sizeof (dhcp->servername));

 

de esto destaco:

struct timeval tv;

....

if (gettimeofday (&tv, NULL) == -1) {

logger (LOG_ERR, "gettimeofday: %s", strerror (errno));

return (-1);

}

...

dhcp->leasedfrom = tv.tv_sec;

 

se supone que ahi se utilizan variables y funciones del encabezado <sys/time.h>, que segun lo que aprendi es una llamada al sistema :S

 

el asunto es si estoy en lo correcto, alguien me puede orientar???

 

links de interes:

http://pubs.opengroup.org/onlinepubs/7908799/xsh/systime.h.html

http://pubs.opengrou...ttimeofday.html

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...