ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid-8/src/ircd_parser.y
(Generate patch)

Comparing ircd-hybrid-8/src/ircd_parser.y (file contents):
Revision 1227 by michael, Tue Sep 13 18:22:31 2011 UTC vs.
Revision 1228 by michael, Mon Sep 19 09:38:38 2011 UTC

# Line 73 | Line 73 | static char gecos_name[REALLEN * 4];
73  
74   static char *resv_reason = NULL;
75   static char *listener_address = NULL;
76 static int not_atom = 0;
76  
77   struct CollectItem
78   {
# Line 254 | Line 253 | unhook_hub_leaf_confs(void)
253   %token  NO_JOIN_ON_SPLIT
254   %token  NO_OPER_FLOOD
255   %token  NO_TILDE
257 %token  NOT
256   %token  NUMBER
257   %token  NUMBER_PER_IDENT
258   %token  NUMBER_PER_CIDR
# Line 362 | Line 360 | unhook_hub_leaf_confs(void)
360   %token  T_UNXLINE
361   %token  T_GLOBOPS
362   %token  T_WALLOP
363 + %token  T_RESTART
364   %token  T_SERVICE
365   %token  T_SERVICES_NAME
366   %token  THROTTLE_TIME
# Line 1245 | Line 1244 | oper_umodes_item:  T_BOTS
1244  
1245   oper_flags: IRCD_FLAGS
1246   {
1247 +  if (conf_parser_ctx.pass == 2)
1248 +    yy_aconf->port = 0;
1249   } '='  oper_flags_items ';';
1250  
1251   oper_flags_items: oper_flags_items ',' oper_flags_item | oper_flags_item;
1252 < oper_flags_item: NOT { not_atom = 1; } oper_flags_item_atom
1252 <                | { not_atom = 0; } oper_flags_item_atom;
1253 <
1254 < oper_flags_item_atom: GLOBAL_KILL
1252 > oper_flags_item: GLOBAL_KILL
1253   {
1254    if (conf_parser_ctx.pass == 2)
1255 <  {
1258 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
1259 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
1260 <  }
1255 >    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
1256   } | REMOTE
1257   {
1258    if (conf_parser_ctx.pass == 2)
1259 <  {
1265 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
1266 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
1267 <  }
1259 >    yy_aconf->port |= OPER_FLAG_REMOTE;
1260   } | KLINE
1261   {
1262    if (conf_parser_ctx.pass == 2)
1263 <  {
1272 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
1273 <    else yy_aconf->port |= OPER_FLAG_K;
1274 <  }
1263 >    yy_aconf->port |= OPER_FLAG_K;
1264   } | UNKLINE
1265   {
1266    if (conf_parser_ctx.pass == 2)
1267 <  {
1279 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
1280 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
1281 <  }
1267 >    yy_aconf->port |= OPER_FLAG_UNKLINE;
1268   } | XLINE
1269   {
1270    if (conf_parser_ctx.pass == 2)
1271 <  {
1286 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
1287 <    else yy_aconf->port |= OPER_FLAG_X;
1288 <  }
1271 >    yy_aconf->port |= OPER_FLAG_X;
1272   } | GLINE
1273   {
1274    if (conf_parser_ctx.pass == 2)
1275 <  {
1293 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
1294 <    else yy_aconf->port |= OPER_FLAG_GLINE;
1295 <  }
1275 >    yy_aconf->port |= OPER_FLAG_GLINE;
1276   } | DIE
1277   {
1278    if (conf_parser_ctx.pass == 2)
1279 <  {
1280 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
1281 <    else yy_aconf->port |= OPER_FLAG_DIE;
1282 <  }
1279 >    yy_aconf->port |= OPER_FLAG_DIE;
1280 > } | T_RESTART
1281 > {
1282 >  if (conf_parser_ctx.pass == 2)
1283 >    yy_aconf->port |= OPER_FLAG_RESTART;
1284   } | REHASH
1285   {
1286    if (conf_parser_ctx.pass == 2)
1287 <  {
1307 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
1308 <    else yy_aconf->port |= OPER_FLAG_REHASH;
1309 <  }
1287 >    yy_aconf->port |= OPER_FLAG_REHASH;
1288   } | ADMIN
1289   {
1290    if (conf_parser_ctx.pass == 2)
1291 <  {
1314 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
1315 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
1316 <  }
1291 >    yy_aconf->port |= OPER_FLAG_ADMIN;
1292   } | HIDDEN_ADMIN
1293   {
1294    if (conf_parser_ctx.pass == 2)
1295 <  {
1321 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
1322 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
1323 <  }
1295 >    yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
1296   } | NICK_CHANGES
1297   {
1298    if (conf_parser_ctx.pass == 2)
1299 <  {
1328 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
1329 <    else yy_aconf->port |= OPER_FLAG_N;
1330 <  }
1299 >    yy_aconf->port |= OPER_FLAG_N;
1300   } | T_OPERWALL
1301   {
1302    if (conf_parser_ctx.pass == 2)
1303 <  {
1335 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
1336 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
1337 <  }
1303 >    yy_aconf->port |= OPER_FLAG_OPERWALL;
1304   } | T_GLOBOPS
1305   {
1306    if (conf_parser_ctx.pass == 2)
1307 <  {
1342 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLOBOPS;
1343 <    else yy_aconf->port |= OPER_FLAG_GLOBOPS;
1344 <  }
1307 >    yy_aconf->port |= OPER_FLAG_GLOBOPS;
1308   } | OPER_SPY_T
1309   {
1310    if (conf_parser_ctx.pass == 2)
1311 <  {
1349 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
1350 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
1351 <  }
1311 >    yy_aconf->port |= OPER_FLAG_OPER_SPY;
1312   } | HIDDEN_OPER
1313   {
1314    if (conf_parser_ctx.pass == 2)
1315 <  {
1356 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
1357 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
1358 <  }
1315 >    yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
1316   } | REMOTEBAN
1317   {
1318    if (conf_parser_ctx.pass == 2)
1319 <  {
1320 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
1364 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
1365 <  }
1366 < } | ENCRYPTED
1319 >    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
1320 > } | MODULE
1321   {
1322    if (conf_parser_ctx.pass == 2)
1323 <  {
1370 <    if (not_atom) ClearConfEncrypted(yy_aconf);
1371 <    else SetConfEncrypted(yy_aconf);
1372 <  }
1323 >    yy_aconf->port |= OPER_FLAG_MODULE;
1324   };
1325  
1326  
# Line 1785 | Line 1736 | auth_flags: IRCD_FLAGS
1736   } '='  auth_flags_items ';';
1737  
1738   auth_flags_items: auth_flags_items ',' auth_flags_item | auth_flags_item;
1739 < auth_flags_item: NOT { not_atom = 1; } auth_flags_item_atom
1789 <                | { not_atom = 0; } auth_flags_item_atom;
1790 <
1791 < auth_flags_item_atom: SPOOF_NOTICE
1739 > auth_flags_item: SPOOF_NOTICE
1740   {
1741    if (conf_parser_ctx.pass == 2)
1742 <  {
1795 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
1796 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
1797 <  }
1742 >    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
1743   } | EXCEED_LIMIT
1744   {
1745    if (conf_parser_ctx.pass == 2)
1746 <  {
1802 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
1803 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
1804 <  }
1746 >    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
1747   } | KLINE_EXEMPT
1748   {
1749    if (conf_parser_ctx.pass == 2)
1750 <  {
1809 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
1810 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
1811 <  }
1750 >    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
1751   } | NEED_IDENT
1752   {
1753    if (conf_parser_ctx.pass == 2)
1754 <  {
1816 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
1817 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
1818 <  }
1754 >    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
1755   } | CAN_FLOOD
1756   {
1757    if (conf_parser_ctx.pass == 2)
1758 <  {
1823 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
1824 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
1825 <  }
1758 >    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
1759   } | NO_TILDE
1760   {
1761    if (conf_parser_ctx.pass == 2)
1762 <  {
1830 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
1831 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
1832 <  }
1762 >    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
1763   } | GLINE_EXEMPT
1764   {
1765    if (conf_parser_ctx.pass == 2)
1766 <  {
1837 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
1838 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
1839 <  }
1766 >    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
1767   } | RESV_EXEMPT
1768   {
1769    if (conf_parser_ctx.pass == 2)
1770 <  {
1844 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
1845 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
1846 <  }
1770 >    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
1771   } | NEED_PASSWORD
1772   {
1773    if (conf_parser_ctx.pass == 2)
1774 <  {
1851 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
1852 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
1853 <  }
1774 >    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
1775   };
1776  
1777   /* XXX - need check for illegal hostnames here */
# Line 2434 | Line 2355 | connect_flags: IRCD_FLAGS
2355   } '='  connect_flags_items ';';
2356  
2357   connect_flags_items: connect_flags_items ',' connect_flags_item | connect_flags_item;
2358 < connect_flags_item: NOT  { not_atom = 1; } connect_flags_item_atom
2438 <                        |  { not_atom = 0; } connect_flags_item_atom;
2439 <
2440 < connect_flags_item_atom: COMPRESSED
2358 > connect_flags_item: COMPRESSED
2359   {
2360    if (conf_parser_ctx.pass == 2)
2361   #ifndef HAVE_LIBZ
2362      yyerror("Ignoring flags = compressed; -- no zlib support");
2363   #else
2364   {
2365 <   if (not_atom)ClearConfCompressed(yy_aconf);
2448 <   else SetConfCompressed(yy_aconf);
2365 >   SetConfCompressed(yy_aconf);
2366   }
2367   #endif
2368   } | CRYPTLINK
2369   {
2370    if (conf_parser_ctx.pass == 2)
2371 <  {
2455 <    if (not_atom)ClearConfCryptLink(yy_aconf);
2456 <    else SetConfCryptLink(yy_aconf);
2457 <  }
2371 >    SetConfCryptLink(yy_aconf);
2372   } | AUTOCONN
2373   {
2374    if (conf_parser_ctx.pass == 2)
2375 <  {
2462 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
2463 <    else SetConfAllowAutoConn(yy_aconf);
2464 <  }
2375 >    SetConfAllowAutoConn(yy_aconf);
2376   } | BURST_AWAY
2377   {
2378    if (conf_parser_ctx.pass == 2)
2379 <  {
2469 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
2470 <    else SetConfAwayBurst(yy_aconf);
2471 <  }
2379 >    SetConfAwayBurst(yy_aconf);
2380   } | TOPICBURST
2381   {
2382    if (conf_parser_ctx.pass == 2)
2383 <  {
2384 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
2477 <    else SetConfTopicBurst(yy_aconf);
2478 <  }
2479 < }
2480 < ;
2383 >    SetConfTopicBurst(yy_aconf);
2384 > };
2385  
2386   connect_rsa_public_key_file: RSA_PUBLIC_KEY_FILE '=' QSTRING ';'
2387   {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines