]> git.pond.sub.org Git - empserver/blobdiff - src/lib/player/accept.c
Indented with src/scripts/indent-emp.
[empserver] / src / lib / player / accept.c
index 4c50a62d7211cf139a726aa3a51a74210f00b801..2ef5e61a93a6dc96696abf18b7d995822e847f59 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-struct emp_qelem Players;
+struct emp_qelem Players;
 
 void
 player_init(void)
 {
-       emp_initque(&Players);
-       init_player_commands();
+    emp_initque(&Players);
+    init_player_commands();
 }
 
 struct player *
 player_new(int s, struct sockaddr_in *sin)
 {
-       struct  player *lp;
-       struct hostent *hostp;
+    struct player *lp;
+    struct hostent *hostp;
 
-       lp = (struct player *) calloc(1, sizeof(struct player));
-       bzero((s_char *)lp, sizeof(struct player));
-       if (sin) {
-               /* update uses dummy player */
-               /* so does the market updater */
-               emp_insque(&lp->queue, &Players);
-               strcpy(lp->hostaddr, inet_ntoa(sin->sin_addr));
+    lp = (struct player *)calloc(1, sizeof(struct player));
+    bzero((s_char *)lp, sizeof(struct player));
+    if (sin) {
+       /* update uses dummy player */
+       /* so does the market updater */
+       emp_insque(&lp->queue, &Players);
+       strcpy(lp->hostaddr, inet_ntoa(sin->sin_addr));
 #ifdef RESOLVE_IPADDRESS
-               if (NULL != (hostp = gethostbyaddr((char *) &sin->sin_addr, sizeof(sin->sin_addr), AF_INET)))
-                       strcpy(lp->hostname, hostp->h_name);
+       if (NULL !=
+           (hostp =
+            gethostbyaddr((char *)&sin->sin_addr, sizeof(sin->sin_addr),
+                          AF_INET)))
+           strcpy(lp->hostname, hostp->h_name);
 #endif /* RESOLVE_IPADDRESS */
-               lp->cnum = 255;
-              lp->curid = -1;
-               time(&lp->curup);
-               lp->iop = io_open(s, IO_READ|IO_WRITE|IO_NBLOCK,
-                       IO_BUFSIZE, 0, 0);
-       }
-       return lp;
+       lp->cnum = 255;
+       lp->curid = -1;
+       time(&lp->curup);
+       lp->iop = io_open(s, IO_READ | IO_WRITE | IO_NBLOCK,
+                         IO_BUFSIZE, 0, 0);
+    }
+    return lp;
 }
 
 struct player *
 player_delete(struct player *lp)
 {
-       struct  player *back;
+    struct player *back;
 
-       back = (struct player *) lp->queue.q_back;
-       if (back)
-               emp_remque(&lp->queue);
-       if (lp->iop) {
-               /* it's a real player */
-               io_close(lp->iop);
-               lp->iop = 0;
-       }
-       free((s_char *)lp);
-       /* XXX may need to free bigmap here */
-       return back;
+    back = (struct player *)lp->queue.q_back;
+    if (back)
+       emp_remque(&lp->queue);
+    if (lp->iop) {
+       /* it's a real player */
+       io_close(lp->iop);
+       lp->iop = 0;
+    }
+    free((s_char *)lp);
+    /* XXX may need to free bigmap here */
+    return back;
 }
 
 struct player *
 player_next(struct player *lp)
 {
-       if (lp == 0)
-               lp = (struct player *)Players.q_forw;
-       else
-               lp = (struct player *)lp->queue.q_forw;
-       if (&lp->queue == &Players)
-               return 0;
-       return lp;
+    if (lp == 0)
+       lp = (struct player *)Players.q_forw;
+    else
+       lp = (struct player *)lp->queue.q_forw;
+    if (&lp->queue == &Players)
+       return 0;
+    return lp;
 }
 
 struct player *
 player_prev(struct player *lp)
 {
-       if (lp == 0)
-               lp = (struct player *)Players.q_back;
-       else
-               lp = (struct player *)lp->queue.q_back;
-       if (&lp->queue == &Players)
-               return 0;
-       return lp;
+    if (lp == 0)
+       lp = (struct player *)Players.q_back;
+    else
+       lp = (struct player *)lp->queue.q_back;
+    if (&lp->queue == &Players)
+       return 0;
+    return lp;
 }
 
 struct player *
 getplayer(natid cnum)
 {
-       register struct emp_qelem *qp;
+    register struct emp_qelem *qp;
 
-       for (qp = Players.q_forw; qp != &Players; qp = qp->q_forw)
-               if (((struct player *)qp)->cnum == cnum)
-                       return (struct player *)qp;
+    for (qp = Players.q_forw; qp != &Players; qp = qp->q_forw)
+       if (((struct player *)qp)->cnum == cnum)
+           return (struct player *)qp;
 
-       return 0;
+    return 0;
 }
 
 struct player *
 player_find_other(struct player *us, register natid cnum)
 {
-       register struct emp_qelem *qp;
+    register struct emp_qelem *qp;
 
-       for (qp = Players.q_forw; qp != &Players; qp = qp->q_forw)
-               if (((struct player *)qp)->cnum == cnum &&
-                   ((struct player *)qp != us) &&
-                    (((struct player *)qp)->state == PS_PLAYING))
-                       return (struct player *)qp;
+    for (qp = Players.q_forw; qp != &Players; qp = qp->q_forw)
+       if (((struct player *)qp)->cnum == cnum &&
+           ((struct player *)qp != us) &&
+           (((struct player *)qp)->state == PS_PLAYING))
+           return (struct player *)qp;
 
-       
-       return 0;
+
+    return 0;
 }
 
 void
 player_wakeup_all(natid cnum)
 {
-       register struct player *lp;
+    register struct player *lp;
 
-       if (NULL != (lp = getplayer(cnum)))
-               player_wakeup(lp);
+    if (NULL != (lp = getplayer(cnum)))
+       player_wakeup(lp);
 }
 
 void
 player_wakeup(struct player *pl)
 {
-       if (pl->waiting)
-               empth_wakeup(pl->proc);
+    if (pl->waiting)
+       empth_wakeup(pl->proc);
 }
 
 /*ARGSUSED*/
 void
 player_accept(void *argv)
 {
-       extern  s_char *loginport;
-       extern  int errno;
-       struct  sockaddr_in sin;
-       struct  servent *sp;
-       int     s;
-       short   port;
-       int     val;
-       int     maxfd;
-       struct  player *np;
-       int     len;
-       int     ns;
-       int     set = 1;
-       int     stacksize;
-       char    buf[128];
+    extern s_char *loginport;
+    extern int errno;
+    struct sockaddr_in sin;
+    struct servent *sp;
+    int s;
+    short port;
+    int val;
+    int maxfd;
+    struct player *np;
+    int len;
+    int ns;
+    int set = 1;
+    int stacksize;
+    char buf[128];
 
-       player_init();
-       sp = getservbyname("empire", "tcp");
-       if (sp == 0)
-               port = htons(atoi(loginport));
-       else
-               port = sp->s_port;
-       sin.sin_addr.s_addr = INADDR_ANY;
-       sin.sin_port = port;
-       sin.sin_family = AF_INET;
-       if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-               logerror("inet socket create");
-               exit(1);
-       }
-       val = 1;
+    player_init();
+    sp = getservbyname("empire", "tcp");
+    if (sp == 0)
+       port = htons(atoi(loginport));
+    else
+       port = sp->s_port;
+    sin.sin_addr.s_addr = INADDR_ANY;
+    sin.sin_port = port;
+    sin.sin_family = AF_INET;
+    if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
+       logerror("inet socket create");
+       exit(1);
+    }
+    val = 1;
 #if !(defined(__linux__) && defined(__alpha__))
-       if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&val, sizeof(val)) < 0) {
-               logerror("inet socket setsockopt SO_REUSEADDR (%d)", errno);
-               exit(1);
-       }
+    if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&val, sizeof(val))
+       < 0) {
+       logerror("inet socket setsockopt SO_REUSEADDR (%d)", errno);
+       exit(1);
+    }
 #else
-    logerror("Alpha/Linux?  You don't support SO_REUSEADDR yet, do you?\n");
+    logerror
+       ("Alpha/Linux?  You don't support SO_REUSEADDR yet, do you?\n");
 #endif
-       if (bind(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
-               logerror("inet socket bind");
-               exit(1);
-       }
-#ifdef LISTENMAXCONN /* because someone in linux world didn't want to use
-                     * SOMAXCONN as defined in the header files... */
-       if (listen(s, LISTENMAXCONN) < 0) {
-               logerror("inet socket listen");
-               exit(1);
-       }
+    if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
+       logerror("inet socket bind");
+       exit(1);
+    }
+#ifdef LISTENMAXCONN           /* because someone in linux world didn't want to use
+                                * SOMAXCONN as defined in the header files... */
+    if (listen(s, LISTENMAXCONN) < 0) {
+       logerror("inet socket listen");
+       exit(1);
+    }
 #else
-       if (listen(s, SOMAXCONN) < 0) {
-               logerror("inet socket listen");
-               exit(1);
-       }
+    if (listen(s, SOMAXCONN) < 0) {
+       logerror("inet socket listen");
+       exit(1);
+    }
 #endif
-       maxfd = getfdtablesize() - 1;
-       while (1) {
-               empth_select(s, EMPTH_FD_READ);
-               len = sizeof(sin);
-               ns = accept(s, (struct sockaddr *) &sin, &len);
-               if (ns < 0) {
-                       logerror("new socket accept");
-                       continue;
-               }
-               (void) setsockopt(ns, SOL_SOCKET, SO_KEEPALIVE,
-                       (char *) &set, sizeof(set));
-               if (ns >= maxfd) {
-                       logerror("new fd %d, max %d, no fd's left for new user",
-                               ns, maxfd);
-                       close(ns);
-                       continue;
-               }
-               np = player_new(ns, &sin);
-               /* XXX may not be big enough */
-               stacksize = 100000
-/* budget */             + max(WORLD_X*WORLD_Y/2 * sizeof(int) * 7,
-/* power */                    MAXNOC * sizeof(struct powstr));
-               sprintf(buf, "Player (fd #%d)", ns);
-               empth_create(PP_PLAYER, player_login, stacksize,
-                            0, buf, "Empire player", np);
+    maxfd = getfdtablesize() - 1;
+    while (1) {
+       empth_select(s, EMPTH_FD_READ);
+       len = sizeof(sin);
+       ns = accept(s, (struct sockaddr *)&sin, &len);
+       if (ns < 0) {
+           logerror("new socket accept");
+           continue;
+       }
+       (void)setsockopt(ns, SOL_SOCKET, SO_KEEPALIVE,
+                        (char *)&set, sizeof(set));
+       if (ns >= maxfd) {
+           logerror("new fd %d, max %d, no fd's left for new user",
+                    ns, maxfd);
+           close(ns);
+           continue;
        }
+       np = player_new(ns, &sin);
+       /* XXX may not be big enough */
+       stacksize = 100000
+/* budget */  + max(WORLD_X * WORLD_Y / 2 * sizeof(int) * 7,
+/* power */ MAXNOC * sizeof(struct powstr));
+       sprintf(buf, "Player (fd #%d)", ns);
+       empth_create(PP_PLAYER, player_login, stacksize,
+                    0, buf, "Empire player", np);
+    }
 }