/[LeafOK_CVS]/lbbs/src/bbs_net.c
ViewVC logotype

Diff of /lbbs/src/bbs_net.c

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

Revision 1.30 by sysadm, Sat May 10 14:37:04 2025 UTC Revision 1.31 by sysadm, Sun May 11 02:42:38 2025 UTC
# Line 33  Line 33 
33  #include <sys/ioctl.h>  #include <sys/ioctl.h>
34  #include <sys/socket.h>  #include <sys/socket.h>
35  #include <netinet/in.h>  #include <netinet/in.h>
36    #include <netinet/ip.h>
37  #include <arpa/inet.h>  #include <arpa/inet.h>
38    
39  #define MENU_CONF_DELIM " \t\r\n"  #define MENU_CONF_DELIM " \t\r\n"
# Line 157  int bbsnet_connect(int n) Line 158  int bbsnet_connect(int n)
158          fd_set write_fds;          fd_set write_fds;
159          struct timeval timeout;          struct timeval timeout;
160          struct hostent *p_host = NULL;          struct hostent *p_host = NULL;
161          int tos = 020, i;          int tos;
162            int i;
163          char remote_addr[IP_ADDR_LEN];          char remote_addr[IP_ADDR_LEN];
164          int remote_port;          int remote_port;
165          time_t t_used;          time_t t_used;
# Line 190  int bbsnet_connect(int n) Line 192  int bbsnet_connect(int n)
192          }          }
193    
194          sin.sin_family = AF_INET;          sin.sin_family = AF_INET;
195          sin.sin_addr.s_addr =          sin.sin_addr.s_addr = (hostaddr_server[0] != '\0' ? inet_addr(hostaddr_server) : INADDR_ANY);
                 (strnlen(hostaddr_server, sizeof(hostaddr_server)) > 0 ? inet_addr(hostaddr_server) : INADDR_ANY);  
196          sin.sin_port = 0;          sin.sin_port = 0;
197    
198          if (bind(sock, (struct sockaddr *)&sin, sizeof(sin)) < 0)          if (bind(sock, (struct sockaddr *)&sin, sizeof(sin)) < 0)
199          {          {
200                  log_error("Bind address %s:%u failed\n",                  log_error("Bind address %s:%u failed (%d)\n",
201                                    inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));                                    inet_ntoa(sin.sin_addr), ntohs(sin.sin_port), errno);
202                  return -2;                  return -2;
203          }          }
204    
# Line 279  int bbsnet_connect(int n) Line 280  int bbsnet_connect(int n)
280          }          }
281    
282          fcntl(sock, F_SETFL, flags); /* restore file status flags */          fcntl(sock, F_SETFL, flags); /* restore file status flags */
283          setsockopt(sock, IPPROTO_IP, IP_TOS, &tos, sizeof(int));  
284            tos = IPTOS_LOWDELAY;
285            if (setsockopt(sock, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) < 0)
286            {
287                    log_error("setsockopt IP_TOS=%d error (%d)\n", tos, errno);
288            }
289    
290          prints("\033[1;31m连接成功!\033[m\r\n");          prints("\033[1;31m连接成功!\033[m\r\n");
291          log_std("BBSNET connect to %s:%d\n", remote_addr, remote_port);          log_std("BBSNET connect to %s:%d\n", remote_addr, remote_port);


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1