/[lwip]/lwip/src/api/api_lib.c
ViewVC logotype

Diff of /lwip/src/api/api_lib.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by jani, Fri Jan 24 09:24:44 2003 UTC revision 1.6 by davidhaas, Thu Feb 6 22:18:56 2003 UTC
# Line 215  netconn *netconn_new(enum netconn_type t Line 215  netconn *netconn_new(enum netconn_type t
215    conn->acceptmbox = SYS_MBOX_NULL;    conn->acceptmbox = SYS_MBOX_NULL;
216    conn->sem = SYS_SEM_NULL;    conn->sem = SYS_SEM_NULL;
217    conn->state = NETCONN_NONE;    conn->state = NETCONN_NONE;
218      conn->socket = 0;
219      conn->callback = 0;
220      conn->recv_avail = 0;
221    return conn;    return conn;
222  }  }
223  /*-----------------------------------------------------------------------------------*/  /*-----------------------------------------------------------------------------------*/
224    struct
225    netconn *netconn_new_with_callback(enum netconn_type t,
226                                       void (*callback)(struct netconn *, enum netconn_evt, u16_t len))
227    {
228        struct netconn *conn;
229        
230        /* get a netconn and then initialize callback pointer and socket */
231        conn = netconn_new(t);
232        if (conn)
233            conn->callback = callback;
234        return conn;
235    }
236    
237    /*-----------------------------------------------------------------------------------*/
238  err_t  err_t
239  netconn_delete(struct netconn *conn)  netconn_delete(struct netconn *conn)
240  {  {
# Line 437  netconn_accept(struct netconn *conn) Line 454  netconn_accept(struct netconn *conn)
454    }    }
455        
456    sys_mbox_fetch(conn->acceptmbox, (void **)&newconn);    sys_mbox_fetch(conn->acceptmbox, (void **)&newconn);
457      /* Register event with callback */
458      if (conn->callback)
459          (*conn->callback)(conn, NETCONN_EVT_RCVMINUS, 0);
460      
461    return newconn;    return newconn;
462  }  }
463  /*-----------------------------------------------------------------------------------*/  /*-----------------------------------------------------------------------------------*/
# Line 476  netconn_recv(struct netconn *conn) Line 496  netconn_recv(struct netconn *conn)
496      }      }
497            
498      sys_mbox_fetch(conn->recvmbox, (void **)&p);      sys_mbox_fetch(conn->recvmbox, (void **)&p);
499                conn->recv_avail -= p->tot_len;
500        /* Register event with callback */
501        if (conn->callback)
502            (*conn->callback)(conn, NETCONN_EVT_RCVMINUS, p->tot_len);
503    
504      /* If we are closed, we indicate that we no longer wish to recieve      /* If we are closed, we indicate that we no longer wish to recieve
505         data by setting conn->recvmbox to SYS_MBOX_NULL. */         data by setting conn->recvmbox to SYS_MBOX_NULL. */
506      if(p == NULL) {      if(p == NULL) {
# Line 509  netconn_recv(struct netconn *conn) Line 533  netconn_recv(struct netconn *conn)
533      memp_freep(MEMP_API_MSG, msg);      memp_freep(MEMP_API_MSG, msg);
534    } else {    } else {
535      sys_mbox_fetch(conn->recvmbox, (void **)&buf);      sys_mbox_fetch(conn->recvmbox, (void **)&buf);
536            conn->recv_avail -= buf->p->tot_len;
537        /* Register event with callback */
538        if (conn->callback)
539            (*conn->callback)(conn, NETCONN_EVT_RCVMINUS, buf->p->tot_len);
540    }    }
541    
542        
# Line 620  netconn_write(struct netconn *conn, void Line 648  netconn_write(struct netconn *conn, void
648      sys_sem_free(conn->sem);      sys_sem_free(conn->sem);
649      conn->sem = SYS_SEM_NULL;      conn->sem = SYS_SEM_NULL;
650    }    }
651      
652    return conn->err;    return conn->err;
653  }  }
654  /*-----------------------------------------------------------------------------------*/  /*-----------------------------------------------------------------------------------*/
# Line 657  netconn_err(struct netconn *conn) Line 686  netconn_err(struct netconn *conn)
686    return conn->err;    return conn->err;
687  }  }
688  /*-----------------------------------------------------------------------------------*/  /*-----------------------------------------------------------------------------------*/
   
   
   
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26