~ubuntu-branches/ubuntu/karmic/dante/karmic

« back to all changes in this revision

Viewing changes to dlib/config_parse.c

  • Committer: Bazaar Package Importer
  • Author(s): Adrian Bridgett
  • Date: 2003-11-15 18:59:33 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20031115185933-vkxgk8f226ovwmrh
Tags: 1.1.14-2
improve extended descriptions (closes: #209510, #210116)

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
#if __GNUC__ == 2
5
5
  __attribute__ ((unused))
6
6
#endif /* __GNUC__ == 2 */
7
 
  = "$OpenBSD: skeleton.c,v 1.16 2001/02/26 00:03:33 tholo Exp $";
 
7
  = "$OpenBSD: skeleton.c,v 1.18 2001/11/19 19:02:18 mpech Exp $";
8
8
#endif
9
9
#include <stdlib.h>
10
10
#define YYBYACC 1
49
49
#include "yacconfig.h"
50
50
 
51
51
static const char rcsid[] =
52
 
"$Id: config_parse.y,v 1.180 2001/12/12 14:42:10 karls Exp $";
 
52
"$Id: config_parse.y,v 1.183 2002/05/01 12:35:14 michaels Exp $";
53
53
 
54
54
__BEGIN_DECLS
55
55
 
201
201
#define USER_LIBWRAP 287
202
202
#define LOGOUTPUT 288
203
203
#define LOGFILE 289
204
 
#define ROUTE 290
205
 
#define VIA 291
206
 
#define VERDICT_BLOCK 292
207
 
#define VERDICT_PASS 293
208
 
#define PAMSERVICENAME 294
209
 
#define PROTOCOL 295
210
 
#define PROTOCOL_TCP 296
211
 
#define PROTOCOL_UDP 297
212
 
#define PROTOCOL_FAKE 298
213
 
#define PROXYPROTOCOL 299
214
 
#define PROXYPROTOCOL_SOCKS_V4 300
215
 
#define PROXYPROTOCOL_SOCKS_V5 301
216
 
#define PROXYPROTOCOL_MSPROXY_V2 302
217
 
#define PROXYPROTOCOL_HTTP_V1_0 303
218
 
#define USER 304
219
 
#define COMMAND 305
220
 
#define COMMAND_BIND 306
221
 
#define COMMAND_CONNECT 307
222
 
#define COMMAND_UDPASSOCIATE 308
223
 
#define COMMAND_BINDREPLY 309
224
 
#define COMMAND_UDPREPLY 310
225
 
#define ACTION 311
226
 
#define LINE 312
227
 
#define LIBWRAPSTART 313
228
 
#define OPERATOR 314
229
 
#define LOG 315
230
 
#define LOG_CONNECT 316
231
 
#define LOG_DATA 317
232
 
#define LOG_DISCONNECT 318
233
 
#define LOG_ERROR 319
234
 
#define LOG_IOOPERATION 320
235
 
#define IPADDRESS 321
236
 
#define DOMAINNAME 322
237
 
#define DIRECT 323
238
 
#define IFNAME 324
239
 
#define PORT 325
240
 
#define PORTNUMBER 326
241
 
#define SERVICENAME 327
242
 
#define NUMBER 328
243
 
#define FROM 329
244
 
#define TO 330
245
 
#define REDIRECT 331
246
 
#define BANDWIDTH 332
 
204
#define CHILD_MAXIDLENUMBER 290
 
205
#define ROUTE 291
 
206
#define VIA 292
 
207
#define VERDICT_BLOCK 293
 
208
#define VERDICT_PASS 294
 
209
#define PAMSERVICENAME 295
 
210
#define PROTOCOL 296
 
211
#define PROTOCOL_TCP 297
 
212
#define PROTOCOL_UDP 298
 
213
#define PROTOCOL_FAKE 299
 
214
#define PROXYPROTOCOL 300
 
215
#define PROXYPROTOCOL_SOCKS_V4 301
 
216
#define PROXYPROTOCOL_SOCKS_V5 302
 
217
#define PROXYPROTOCOL_MSPROXY_V2 303
 
218
#define PROXYPROTOCOL_HTTP_V1_0 304
 
219
#define USER 305
 
220
#define COMMAND 306
 
221
#define COMMAND_BIND 307
 
222
#define COMMAND_CONNECT 308
 
223
#define COMMAND_UDPASSOCIATE 309
 
224
#define COMMAND_BINDREPLY 310
 
225
#define COMMAND_UDPREPLY 311
 
226
#define ACTION 312
 
227
#define LINE 313
 
228
#define LIBWRAPSTART 314
 
229
#define OPERATOR 315
 
230
#define LOG 316
 
231
#define LOG_CONNECT 317
 
232
#define LOG_DATA 318
 
233
#define LOG_DISCONNECT 319
 
234
#define LOG_ERROR 320
 
235
#define LOG_IOOPERATION 321
 
236
#define IPADDRESS 322
 
237
#define DOMAINNAME 323
 
238
#define DIRECT 324
 
239
#define IFNAME 325
 
240
#define PORT 326
 
241
#define PORTNUMBER 327
 
242
#define SERVICENAME 328
 
243
#define NUMBER 329
 
244
#define FROM 330
 
245
#define TO 331
 
246
#define REDIRECT 332
 
247
#define BANDWIDTH 333
247
248
#define YYERRCODE 256
248
249
short socks_yylhs[] = {                                        -1,
249
250
    0,    0,   51,    1,    1,    1,    1,    1,    2,    2,
250
251
    2,    2,   25,   26,   26,   52,   52,   52,   52,   52,
251
 
   52,   52,   52,   52,   50,   50,   50,   50,   50,   50,
252
 
    3,   58,   24,    7,    8,    8,    8,    8,    9,    9,
253
 
   10,   11,   12,   12,   31,   32,   33,   33,   34,   35,
254
 
   36,   37,   38,   38,   27,   27,   27,   39,   40,   41,
255
 
   41,   53,   53,   53,   54,   55,   56,   57,   29,   30,
256
 
   28,   42,   43,   43,   44,   44,   14,   15,   15,   15,
257
 
   16,   17,   17,   18,   18,   47,   95,   45,   96,   46,
258
 
   49,   49,   49,   49,   49,   48,   48,   66,   67,   68,
259
 
   68,   63,   64,   64,   64,   64,   64,   64,   65,   65,
260
 
   69,   69,   69,   69,   69,   70,   70,   19,   21,   21,
261
 
   21,   21,   21,   20,   20,    4,    6,    6,    5,    5,
262
 
   71,   22,   22,   23,   72,   74,   74,   74,   74,   74,
263
 
   73,   73,   13,   75,   76,   77,   97,   98,   60,   61,
264
 
   61,   61,   61,   61,   62,   62,   86,   87,   99,  100,
265
 
   59,   78,   78,   78,   79,   79,   79,   80,   80,   80,
266
 
   82,   82,   82,   81,   88,   88,   83,   84,   85,   89,
267
 
   89,   89,   93,   93,   90,   91,  101,   94,   92,
 
252
   52,   52,   52,   52,   52,   50,   50,   50,   50,   50,
 
253
   50,    3,   59,   24,    7,    8,    8,    8,    8,    9,
 
254
    9,   10,   11,   12,   12,   31,   32,   33,   33,   34,
 
255
   35,   36,   37,   38,   38,   27,   27,   27,   39,   40,
 
256
   41,   41,   58,   53,   53,   53,   54,   55,   56,   57,
 
257
   29,   30,   28,   42,   43,   43,   44,   44,   14,   15,
 
258
   15,   15,   16,   17,   17,   18,   18,   47,   96,   45,
 
259
   97,   46,   49,   49,   49,   49,   49,   48,   48,   67,
 
260
   68,   69,   69,   64,   65,   65,   65,   65,   65,   65,
 
261
   66,   66,   70,   70,   70,   70,   70,   71,   71,   19,
 
262
   21,   21,   21,   21,   21,   20,   20,    4,    6,    6,
 
263
    5,    5,   72,   22,   22,   23,   73,   75,   75,   75,
 
264
   75,   75,   74,   74,   13,   76,   77,   78,   98,   99,
 
265
   61,   62,   62,   62,   62,   62,   63,   63,   87,   88,
 
266
  100,  101,   60,   79,   79,   79,   80,   80,   80,   81,
 
267
   81,   81,   83,   83,   83,   82,   89,   89,   84,   85,
 
268
   86,   90,   90,   90,   94,   94,   91,   92,  102,   95,
 
269
   93,
268
270
};
269
271
short socks_yylen[] = {                                         2,
270
272
    2,    2,    1,    0,    2,    2,    2,    2,    0,    2,
271
273
    2,    2,    1,    1,    1,    1,    1,    1,    1,    1,
272
274
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
273
 
    1,    8,    0,    3,    1,    1,    1,    1,    1,    2,
274
 
    3,    1,    1,    2,    3,    1,    1,    2,    4,    0,
275
 
    4,    0,    3,    3,    1,    1,    1,    3,    1,    1,
276
 
    2,    1,    1,    1,    3,    3,    3,    1,    3,    3,
277
 
    3,    3,    1,    1,    1,    2,    3,    1,    1,    1,
278
 
    3,    1,    1,    1,    2,    3,    0,    4,    0,    4,
279
 
    1,    1,    1,    1,    1,    1,    2,    7,    1,    0,
280
 
    2,    6,    1,    1,    1,    1,    1,    1,    0,    2,
281
 
    1,    1,    1,    1,    1,    1,    1,    3,    1,    1,
282
 
    1,    1,    1,    1,    2,    3,    1,    1,    1,    2,
283
 
    2,    2,    2,    3,    3,    1,    1,    1,    1,    1,
284
 
    1,    2,    3,    3,    3,    3,    3,    3,    3,    1,
285
 
    1,    1,    1,    1,    0,    2,    1,    1,    1,    1,
286
 
    1,    2,    2,    2,    1,    1,    1,    4,    2,    2,
287
 
    2,    2,    1,    1,    1,    1,    1,    1,    1,    0,
288
 
    3,    2,    1,    1,    3,    1,    1,    1,    1,
 
275
    1,    1,    8,    0,    3,    1,    1,    1,    1,    1,
 
276
    2,    3,    1,    1,    2,    3,    1,    1,    2,    4,
 
277
    0,    4,    0,    3,    3,    1,    1,    1,    3,    1,
 
278
    1,    2,    3,    1,    1,    1,    3,    3,    3,    1,
 
279
    3,    3,    3,    3,    1,    1,    1,    2,    3,    1,
 
280
    1,    1,    3,    1,    1,    1,    2,    3,    0,    4,
 
281
    0,    4,    1,    1,    1,    1,    1,    1,    2,    7,
 
282
    1,    0,    2,    6,    1,    1,    1,    1,    1,    1,
 
283
    0,    2,    1,    1,    1,    1,    1,    1,    1,    3,
 
284
    1,    1,    1,    1,    1,    1,    2,    3,    1,    1,
 
285
    1,    2,    2,    2,    2,    3,    3,    1,    1,    1,
 
286
    1,    1,    1,    2,    3,    3,    3,    3,    3,    3,
 
287
    3,    1,    1,    1,    1,    1,    0,    2,    1,    1,
 
288
    1,    1,    1,    2,    2,    2,    1,    1,    1,    4,
 
289
    2,    2,    2,    2,    1,    1,    1,    1,    1,    1,
 
290
    1,    0,    3,    2,    1,    1,    3,    1,    1,    1,
 
291
    1,
289
292
};
290
293
short socks_yydefred[] = {                                      0,
291
 
    3,   13,    0,    9,    4,    0,    0,   31,    0,    0,
292
 
    0,   33,   10,   15,   57,   11,   14,   56,   55,   12,
293
 
    0,   50,   52,    0,    0,    0,    0,    0,    0,    0,
294
 
    0,    0,    0,    0,  116,  117,    5,   18,   29,   30,
295
 
   28,   26,   27,   19,   20,   21,   22,   25,   16,   17,
296
 
   23,    6,   24,   62,   63,   64,    8,    7,    0,    0,
 
294
    3,   13,    0,    9,    4,    0,    0,   32,    0,    0,
 
295
    0,   34,   10,   15,   58,   11,   14,   57,   56,   12,
 
296
    0,   51,   53,    0,    0,    0,    0,    0,    0,    0,
 
297
    0,    0,    0,    0,    0,  118,  119,    5,   18,   30,
 
298
   31,   29,   27,   28,   19,   20,   21,   22,   26,   16,
 
299
   17,   23,    6,   24,   64,   65,   66,   25,    8,    7,
297
300
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
298
 
    0,   87,   89,    0,    0,    0,    0,    0,   71,   79,
299
 
   80,   78,   77,   59,    0,   58,    0,    0,    0,    0,
300
 
   53,   54,   82,   83,    0,   81,   46,    0,   45,   69,
301
 
   70,    0,    0,   73,   74,    0,   72,   68,   65,   66,
302
 
   67,    0,    0,    0,    0,    0,    0,    0,    0,    0,
303
 
    0,  106,  107,  115,  114,  105,  108,  104,  111,    0,
304
 
    0,  103,  113,  112,   61,  152,  153,  150,  151,  154,
305
 
    0,    0,    0,    0,   99,  174,  177,  178,   49,    0,
306
 
    0,    0,   51,  165,  166,  167,   85,   48,   91,   92,
307
 
   93,   94,   95,   88,    0,   90,   76,    0,    0,    0,
308
 
    0,    0,    0,    0,    0,  159,  160,  132,  133,    0,
309
 
    0,    0,  110,  157,    0,    0,    0,  156,    0,  101,
310
 
    0,    0,  162,  163,  164,   97,   86,  143,  127,  128,
311
 
  126,    0,   35,   36,   37,   38,    0,   34,   42,    0,
312
 
   41,  119,  120,  121,  122,  123,  118,    0,  144,  136,
313
 
  137,  138,  139,  140,  135,    0,    0,    0,  134,    0,
314
 
  158,  131,    0,    0,  161,    0,    0,    0,  189,  186,
315
 
  182,    0,    0,  130,   40,   44,  125,  142,  147,    0,
316
 
    0,    0,  148,  102,    0,  145,    0,    0,   98,    0,
317
 
  188,  184,  181,  183,    0,  169,  170,  146,  179,    0,
318
 
  149,    0,  173,   32,  187,  185,  176,  175,    0,  171,
319
 
  172,  168,
 
301
    0,    0,    0,   89,   91,    0,    0,    0,    0,    0,
 
302
    0,   73,   81,   82,   80,   79,   60,    0,   59,    0,
 
303
    0,    0,    0,   54,   55,   84,   85,    0,   83,   47,
 
304
    0,   46,   71,   72,    0,    0,   75,   76,    0,   74,
 
305
   70,   67,   68,   69,   63,    0,    0,    0,    0,    0,
 
306
    0,    0,    0,    0,    0,  108,  109,  117,  116,  107,
 
307
  110,  106,  113,    0,    0,  105,  115,  114,   62,  154,
 
308
  155,  152,  153,  156,    0,    0,    0,    0,  101,  176,
 
309
  179,  180,   50,    0,    0,    0,   52,  167,  168,  169,
 
310
   87,   49,   93,   94,   95,   96,   97,   90,    0,   92,
 
311
   78,    0,    0,    0,    0,    0,    0,    0,    0,  161,
 
312
  162,  134,  135,    0,    0,    0,  112,  159,    0,    0,
 
313
    0,  158,    0,  103,    0,    0,  164,  165,  166,   99,
 
314
   88,  145,  129,  130,  128,    0,   36,   37,   38,   39,
 
315
    0,   35,   43,    0,   42,  121,  122,  123,  124,  125,
 
316
  120,    0,  146,  138,  139,  140,  141,  142,  137,    0,
 
317
    0,    0,  136,    0,  160,  133,    0,    0,  163,    0,
 
318
    0,    0,  191,  188,  184,    0,    0,  132,   41,   45,
 
319
  127,  144,  149,    0,    0,    0,  150,  104,    0,  147,
 
320
    0,    0,  100,    0,  190,  186,  183,  185,    0,  171,
 
321
  172,  148,  181,    0,  151,    0,  175,   33,  189,  187,
 
322
  178,  177,    0,  173,  174,  170,
320
323
};
321
324
short socks_yydgoto[] = {                                       3,
322
 
    7,    6,   14,  122,  201,  202,  123,  207,  208,  124,
323
 
  210,  211,  125,   15,   83,   40,   95,   96,  126,  217,
324
 
  218,  127,  128,   63,    4,   16,   17,   18,   41,   42,
325
 
  139,   98,   99,   44,   65,   45,   66,   46,   19,   85,
326
 
   86,   48,  106,  107,   49,   50,  129,  164,  165,   51,
327
 
    5,   52,   53,   54,   55,   56,  109,   20,  236,  237,
328
 
  141,  142,   57,  130,  131,   58,  143,  144,  132,   59,
329
 
  185,  133,  225,  226,  134,  186,  232,  149,  153,  249,
330
 
  250,  271,  251,  252,  273,  187,  233,  279,  193,  241,
331
 
  242,  243,  263,  264,  102,  103,  178,  179,  180,  181,
332
 
  276,
 
325
    7,    6,   14,  126,  205,  206,  127,  211,  212,  128,
 
326
  214,  215,  129,   15,   86,   41,   98,   99,  130,  221,
 
327
  222,  131,  132,   65,    4,   16,   17,   18,   42,   43,
 
328
  143,  101,  102,   45,   67,   46,   68,   47,   19,   88,
 
329
   89,   49,  109,  110,   50,   51,  133,  168,  169,   52,
 
330
    5,   53,   54,   55,   56,   57,  112,   58,   20,  240,
 
331
  241,  145,  146,   59,  134,  135,   60,  147,  148,  136,
 
332
   61,  189,  137,  229,  230,  138,  190,  236,  153,  157,
 
333
  253,  254,  275,  255,  256,  277,  191,  237,  283,  197,
 
334
  245,  246,  247,  267,  268,  105,  106,  182,  183,  184,
 
335
  185,  280,
333
336
};
334
 
short socks_yysindex[] = {                                   -151,
335
 
    0,    0,    0,    0,    0,  -10,  249,    0,  -21,  -18,
336
 
  -15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
337
 
 -182,    0,    0,   -9,   -4,    2,   16,   18,   23,   30,
338
 
   50,   60,   74,   75,    0,    0,    0,    0,    0,    0,
339
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
340
 
    0,    0,    0,    0,    0,    0,    0,    0,  -65, -194,
341
 
 -245, -154,   13,   14,   80,   81, -248, -155, -130, -183,
342
 
 -181,    0,    0, -168, -142, -142, -142, -249,    0,    0,
343
 
    0,    0,    0,    0, -154,    0, -230, -226, -286, -286,
344
 
    0,    0,    0,    0, -155,    0,    0, -130,    0,    0,
345
 
    0, -186, -186,    0,    0, -168,    0,    0,    0,    0,
346
 
    0,   88,   90,   91,   94,   98,   99,  101,  102, -213,
347
 
  103,    0,    0,    0,    0,    0,    0,    0,    0, -249,
348
 
 -167,    0,    0,    0,    0,    0,    0,    0,    0,    0,
349
 
 -230, -167, -226, -167,    0,    0,    0,    0,    0, -161,
350
 
 -161, -161,    0,    0,    0,    0,    0,    0,    0,    0,
351
 
    0,    0,    0,    0, -186,    0,    0, -186, -158, -176,
352
 
 -270, -110, -211, -139, -215,    0,    0,    0,    0,  117,
353
 
  120, -143,    0,    0, -249, -144,  138,    0,  -94,    0,
354
 
 -226, -285,    0,    0,    0,    0,    0,    0,    0,    0,
355
 
    0, -176,    0,    0,    0,    0, -270,    0,    0, -110,
356
 
    0,    0,    0,    0,    0,    0,    0, -211,    0,    0,
357
 
    0,    0,    0,    0,    0, -215, -286, -286,    0,   73,
358
 
    0,    0,  141, -286,    0,  142, -230,   78,    0,    0,
359
 
    0,  160, -202,    0,    0,    0,    0,    0,    0,  166,
360
 
 -161, -161,    0,    0, -286,    0, -237,   92,    0, -107,
361
 
    0,    0,    0,    0, -294,    0,    0,    0,    0, -161,
362
 
    0, -161,    0,    0,    0,    0,    0,    0, -161,    0,
363
 
    0,    0,
 
337
short socks_yysindex[] = {                                   -152,
 
338
    0,    0,    0,    0,    0,  -10,  255,    0,  -29,  -26,
 
339
  -18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
340
 -186,    0,    0,   -8,   -1,    3,    8,   18,   20,   43,
 
341
   62,   64,   73,   74,   75,    0,    0,    0,    0,    0,
 
342
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
343
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
344
   11, -194, -199, -153,   14,   15,   81,   82, -250, -158,
 
345
 -129, -184, -183,    0,    0, -170, -141, -141, -141, -180,
 
346
 -252,    0,    0,    0,    0,    0,    0, -153,    0, -241,
 
347
 -256, -254, -254,    0,    0,    0,    0, -158,    0,    0,
 
348
 -129,    0,    0,    0, -193, -193,    0,    0, -170,    0,
 
349
    0,    0,    0,    0,    0,   90,   94,   95,   98,  100,
 
350
  101,  102,  103, -216,  104,    0,    0,    0,    0,    0,
 
351
    0,    0,    0, -252, -166,    0,    0,    0,    0,    0,
 
352
    0,    0,    0,    0, -241, -166, -256, -166,    0,    0,
 
353
    0,    0,    0, -161, -161, -161,    0,    0,    0,    0,
 
354
    0,    0,    0,    0,    0,    0,    0,    0, -193,    0,
 
355
    0, -193, -159, -181, -266, -117, -219, -142, -224,    0,
 
356
    0,    0,    0,  115,  116, -150,    0,    0, -252, -147,
 
357
  131,    0, -102,    0, -256, -285,    0,    0,    0,    0,
 
358
    0,    0,    0,    0,    0, -181,    0,    0,    0,    0,
 
359
 -266,    0,    0, -117,    0,    0,    0,    0,    0,    0,
 
360
    0, -219,    0,    0,    0,    0,    0,    0,    0, -224,
 
361
 -254, -254,    0,   66,    0,    0,  134, -254,    0,  139,
 
362
 -241,   76,    0,    0,    0,  153, -209,    0,    0,    0,
 
363
    0,    0,    0,  152, -161, -161,    0,    0, -254,    0,
 
364
 -277,   77,    0, -124,    0,    0,    0,    0, -295,    0,
 
365
    0,    0,    0, -161,    0, -161,    0,    0,    0,    0,
 
366
    0,    0, -161,    0,    0,    0,
364
367
};
365
368
short socks_yyrindex[] = {                                      0,
366
 
    0,    0,    0,    0,    0,  215,  216,    0,    0,    0,
367
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
368
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
369
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
370
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
371
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
372
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
373
 
    0,    0,    0,    0,    0,    0,    0, -106,    0,    0,
374
 
    0,    0,    0,    0,  109,    0, -103, -102,    0,    0,
375
 
    0,    0,    0,    0,  144,    0,    0,   62,    0,    0,
376
 
    0,    0,    0,    0,    0,  179,    0,    0,    0,    0,
377
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
378
 
    0,    0,    0,    0,    0,    0,    0,    0,    0, -119,
379
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
380
 
 -118,    0, -117,    0,    0,    0,    0,    0,    0,  214,
381
 
  214,  214,    0,    0,    0,    0,    0,    0,    0,    0,
382
 
    0,    0,    0,    0,    1,    0,    0,    0,    0,    0,
383
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
384
 
    0,    0,    0,    0,   97,    0,    0,    0,    0,    0,
385
 
  100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
386
 
    0, -111,    0,    0,    0,    0,  251,    0,    0,  310,
387
 
    0,    0,    0,    0,    0,    0,    0,  264,    0,    0,
388
 
    0,    0,    0,    0,    0,  325,    0,    0,    0,    0,
389
 
    0,    0,    0,    0,    0,    0,  104,    0,    0,    0,
390
 
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
391
 
 -123, -123,    0,    0,    0,    0,    0,    0,    0,    0,
392
 
    0,    0,    0,    0,    0,    0,    0,    0,    0, -104,
393
 
    0, -104,    0,    0,    0,    0,    0,    0, -123,    0,
394
 
    0,    0,
 
369
    0,    0,    0,    0,    0,  204,  205,    0,    0,    0,
 
370
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
371
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
372
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
373
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
374
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
375
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
376
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
377
 -116,    0,    0,    0,    0,    0,    0,  111,    0, -115,
 
378
 -113,    0,    0,    0,    0,    0,    0,  147,    0,    0,
 
379
   63,    0,    0,    0,    0,    0,    0,    0,  183,    0,
 
380
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
381
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
382
    0,    0,    0, -123,    0,    0,    0,    0,    0,    0,
 
383
    0,    0,    0,    0, -122,    0, -121,    0,    0,    0,
 
384
    0,    0,    0,  219,  219,  219,    0,    0,    0,    0,
 
385
    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,
 
386
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
387
    0,    0,    0,    0,    0,    0,    0,    0,   91,    0,
 
388
    0,    0,    0,    0,   93,    0,    0,    0,    0,    0,
 
389
    0,    0,    0,    0,    0,  -74,    0,    0,    0,    0,
 
390
  257,    0,    0,  305,    0,    0,    0,    0,    0,    0,
 
391
    0,  264,    0,    0,    0,    0,    0,    0,    0,  328,
 
392
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
393
   99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
394
    0,    0,    0,    0, -120, -120,    0,    0,    0,    0,
 
395
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
396
    0,    0,    0, -119,    0, -119,    0,    0,    0,    0,
 
397
    0,    0, -120,    0,    0,    0,
395
398
};
396
399
short socks_yygindex[] = {                                      0,
397
 
    0,    0,  221,  -84,   28,    0,  -82,    0,   24,    0,
398
 
    0,   22,    0,  226,    0,    0,    0,  139,  -71,   17,
 
400
    0,    0,  199,  -78,   17,    0,  -75,    0,    9,    0,
 
401
    0,   13,    0,  218,    0,    0,    0,  130,  -73,   12,
399
402
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
400
 
  229,    0,  140,    0,    0,    0,    0,    0,  230,    0,
401
 
  154,    0,    0,  134,    0,    0,  -70,  -88,    0,    0,
402
 
    0,    0,    0,    0,    0,    0,   52,    0,    0,    0,
403
 
    0, -137,    0,    0, -112,    0,    0, -124,  -64,  220,
404
 
  -81,    0,   19,    0,    0,    0,    0,    0,    0, -208,
405
 
  -80,    0,  -77,   41,    0,    0,    0,    0, -129,    0,
406
 
   -1,    0,    0,    0,    0,    0,    0,    0,    0,    0,
407
 
    0,
 
403
  223,    0,  132,    0,    0,    0,    0,    0,  228,    0,
 
404
  148,    0,    0,  128,    0,    0,  -71,  -90,    0,    0,
 
405
    0,    0,    0,    0,    0,    0,   49,    0,    0,    0,
 
406
    0,    0, -138,    0,    0, -114,    0,    0, -139,  -70,
 
407
  217,  -44,    0,   16,    0,    0,    0,    0,    0,    0,
 
408
 -207,  -83,    0,  -79,   37,    0,    0,    0,    0, -132,
 
409
    0,   -6,    0,    0,    0,    0,    0,    0,    0,    0,
 
410
    0,    0,
408
411
};
409
 
#define YYTABLESIZE 657
 
412
#define YYTABLESIZE 661
410
413
short socks_yytable[] = {                                      13,
411
 
   96,  180,  136,  188,  137,  109,  155,  100,  150,  154,
412
 
   96,  151,  155,  129,  166,  138,  140,  183,  190,  253,
413
 
  180,  194,  195,  145,  112,  256,  277,   91,  239,  203,
414
 
  204,  205,  206,  278,  146,  147,   60,  148,   26,   61,
415
 
  240,   92,   62,  112,  113,  114,  268,  112,   67,  115,
416
 
   80,   81,   82,   68,  116,  117,  136,   78,  137,   69,
417
 
  189,   47,  191,  118,  114,  119,  238,  113,  115,  138,
418
 
  140,   47,  230,   70,  117,   71,  196,  116,  145,  197,
419
 
   72,  120,  121,  146,  147,  269,  118,   73,  119,  159,
420
 
  160,  161,  162,  163,  212,  213,  214,  215,  216,  258,
421
 
  220,  221,  222,  223,  224,    1,    2,   74,   60,   35,
422
 
   36,   93,   94,  104,  105,  176,  177,   75,   60,  199,
423
 
  200,  266,  267,  240,  261,   96,  145,  110,  111,  152,
424
 
  156,   76,   77,   79,   84,   87,   88,   89,   90,   97,
425
 
  280,  108,  281,   84,  100,  168,  101,  169,  170,  282,
426
 
  180,  171,  136,   84,  137,  172,  173,  129,  174,  175,
427
 
  182,  184,  129,  192,  180,  138,  140,  180,  198,  180,
428
 
  180,  180,  219,  209,  227,  180,  270,  228,   75,  272,
429
 
  180,  180,  129,  129,  229,  231,   47,  129,   75,  180,
430
 
  180,  180,  129,  129,  180,  234,  235,  254,  255,  257,
431
 
  180,  129,  259,  129,  260,  180,  180,  180,  180,  109,
432
 
  155,  100,  265,  180,    2,    1,  274,  129,  275,  129,
433
 
  129,  109,  109,  180,  100,  155,  100,   38,  155,  244,
434
 
  245,  246,   39,  157,  247,   43,   47,  158,  135,  167,
435
 
   64,  262,    0,    0,  248,    0,    0,    0,    8,    0,
436
 
    0,    0,    0,    9,   10,    0,    0,    0,   37,   96,
437
 
   96,   96,   96,   96,    0,   96,   96,    0,    0,   96,
438
 
    0,    0,   96,   96,   96,   96,    0,   11,    0,   12,
439
 
    0,   96,    0,    0,    0,   96,   96,   96,   96,    0,
440
 
    0,    0,   96,   96,   96,   96,    0,    0,    0,   96,
441
 
    0,    0,    0,    0,   96,   96,    0,    0,    0,    0,
442
 
    0,    0,    0,   96,    0,   96,    0,    0,    0,    0,
443
 
   47,   47,   47,   47,   47,    0,   47,   47,    0,   96,
444
 
   47,   96,   96,   47,   47,   47,   47,    0,    0,    0,
445
 
    0,    0,   47,    0,    0,    0,   47,   47,   47,   47,
446
 
    0,    0,    0,   47,   47,    0,   47,    0,    0,    0,
447
 
   47,    0,    0,    0,    0,    0,   47,   60,   60,   60,
448
 
   60,   60,   60,   60,   60,   39,    0,   60,    0,    0,
449
 
   60,   60,   60,   60,    0,    0,    0,    0,  124,   60,
450
 
   47,    0,    0,   60,   60,   60,   60,    0,   60,    0,
451
 
   60,   60,   84,   84,   84,   84,   84,    0,   84,   84,
452
 
    0,    0,   84,    0,    0,   84,   84,   84,   84,    0,
453
 
    0,    0,    0,    0,   84,    0,    0,    0,   84,   84,
454
 
   84,   84,    0,    0,   43,   84,   84,   75,   75,   75,
455
 
   75,   75,    0,   75,   75,    0,    0,   75,    0,  141,
456
 
   75,   75,   75,   75,    0,    0,    0,    0,    0,   75,
457
 
    0,    0,    0,   75,   75,   75,   75,    0,    0,    0,
458
 
   75,   75,  180,  180,  180,  180,  180,    0,  180,  180,
459
 
    0,    0,  180,    0,    0,  180,  180,  180,  180,    0,
460
 
    0,    0,    0,    0,  180,    0,    0,    0,  180,  180,
461
 
  180,  180,    0,    0,    0,  180,  180,    8,   21,   22,
462
 
   23,   24,    0,   10,   25,    0,    0,   26,    0,   39,
463
 
   27,   28,   29,   30,   39,    0,    0,    0,    0,   31,
464
 
    0,    0,  124,   32,   33,   34,   11,  124,    0,    0,
465
 
   35,   36,    0,    0,   39,   39,    0,    0,    0,   39,
466
 
    0,    0,    0,    0,   39,   39,    0,  124,  124,    0,
467
 
    0,    0,  124,   39,    0,   39,    0,  124,  124,    0,
468
 
    0,    0,    0,    0,    0,    0,  124,    0,  124,   39,
469
 
    0,   39,   39,   43,    0,    0,    0,    0,    0,    0,
470
 
    0,    0,  124,    0,  124,  124,    0,    0,  141,    0,
471
 
    0,    0,    0,   43,   43,    0,    0,    0,   43,    0,
472
 
    0,    0,    0,   43,   43,    0,    0,    0,  141,  141,
473
 
    0,    0,   43,  141,   43,    0,    0,    0,  141,  141,
474
 
    0,    0,    0,    0,    0,    0,    0,  141,   43,  141,
475
 
   43,   43,    0,    0,    0,    0,    0,    0,    0,    0,
476
 
    0,    0,    0,  141,    0,  141,  141,
 
414
   98,  111,  157,  102,  182,  182,  192,  194,  154,  158,
 
415
   98,  140,  155,  159,  141,  170,  142,  116,  144,  187,
 
416
  149,  116,  198,  199,  257,   94,  281,   26,   62,  243,
 
417
  260,   63,  116,  282,  207,  208,  209,  210,  117,   64,
 
418
   95,  244,  117,  118,  150,  151,  273,  119,  120,   69,
 
419
  131,  272,  120,  121,  118,  242,   70,  122,  119,  123,
 
420
   71,  122,   48,  123,  121,   72,  140,  150,  151,  141,
 
421
  152,  142,   48,  144,  234,   73,  149,   74,  200,  124,
 
422
  125,  201,  163,  164,  165,  166,  167,  216,  217,  218,
 
423
  219,  220,  224,  225,  226,  227,  228,   83,   84,   85,
 
424
   75,  193,  262,  195,    1,    2,   36,   37,   96,   97,
 
425
   61,  107,  108,  180,  181,  203,  204,  244,  265,   76,
 
426
   61,   77,  270,  271,  149,   98,  113,  114,  156,  160,
 
427
   78,   79,   80,   81,   82,   87,   90,   91,   92,   93,
 
428
  100,  284,  111,  285,  103,  104,   86,  172,  115,  182,
 
429
  286,  173,  174,  182,  182,  175,   86,  176,  177,  178,
 
430
  179,  186,  140,  188,  196,  141,  213,  142,  202,  144,
 
431
  223,  182,  231,  232,  182,  182,  182,  274,  233,  182,
 
432
  182,  276,   77,  235,  182,  182,  182,   48,  238,  239,
 
433
  258,  259,   77,  182,  131,  182,  261,  264,  269,  131,
 
434
  263,  278,  279,    2,    1,   39,  111,  157,  102,  182,
 
435
  182,  182,  182,  111,  157,  111,  102,  102,  182,  249,
 
436
  131,  131,  248,  157,   40,  131,  250,  161,  182,   44,
 
437
  131,  131,  162,  251,   48,  139,  171,   66,    0,  131,
 
438
  266,  131,    0,    0,    0,  252,    0,    0,    8,    0,
 
439
    0,    0,    0,    9,   10,  131,    0,  131,  131,   98,
 
440
   98,   98,   98,   98,   38,   98,   98,    0,    0,   98,
 
441
    0,    0,   98,   98,   98,   98,    0,   11,    0,    0,
 
442
   12,   98,    0,    0,    0,   98,   98,   98,   98,    0,
 
443
   98,    0,    0,   98,   98,   98,   98,    0,    0,    0,
 
444
   98,    0,    0,    0,    0,   98,   98,    0,    0,    0,
 
445
    0,    0,    0,    0,   98,    0,   98,    0,    0,    0,
 
446
    0,   48,   48,   48,   48,   48,    0,   48,   48,    0,
 
447
   98,   48,   98,   98,   48,   48,   48,   48,    0,    0,
 
448
    0,    0,    0,   48,    0,    0,    0,   48,   48,   48,
 
449
   48,    0,   48,    0,    0,   48,   48,    0,   48,    0,
 
450
    0,    0,   48,    0,    0,    0,    0,    0,   48,   61,
 
451
   61,   61,   61,   61,   61,   61,   61,    0,    0,   61,
 
452
    0,   40,   61,   61,   61,   61,    0,    0,  126,    0,
 
453
    0,   61,   48,    0,    0,   61,   61,   61,   61,    0,
 
454
   61,   61,    0,   61,   61,   86,   86,   86,   86,   86,
 
455
    0,   86,   86,    0,    0,   86,    0,    0,   86,   86,
 
456
   86,   86,    0,    0,    0,    0,    0,   86,    0,   44,
 
457
    0,   86,   86,   86,   86,    0,   86,    0,    0,   86,
 
458
   86,   77,   77,   77,   77,   77,    0,   77,   77,    0,
 
459
    0,   77,  143,    0,   77,   77,   77,   77,    0,    0,
 
460
    0,    0,    0,   77,    0,    0,    0,   77,   77,   77,
 
461
   77,    0,   77,    0,    0,   77,   77,  182,  182,  182,
 
462
  182,  182,    0,  182,  182,    0,    0,  182,    0,    0,
 
463
  182,  182,  182,  182,    0,    0,    0,    0,    0,  182,
 
464
    0,    0,    0,  182,  182,  182,  182,    0,  182,    0,
 
465
    0,  182,  182,    8,   21,   22,   23,   24,    0,   10,
 
466
   25,    0,    0,   26,    0,   40,   27,   28,   29,   30,
 
467
   40,    0,  126,    0,    0,   31,    0,  126,    0,   32,
 
468
   33,   34,   11,    0,   35,    0,    0,   36,   37,    0,
 
469
    0,   40,   40,    0,    0,    0,   40,    0,  126,  126,
 
470
    0,   40,   40,  126,    0,    0,    0,    0,  126,  126,
 
471
   40,    0,   40,    0,    0,    0,    0,  126,   44,  126,
 
472
    0,    0,    0,    0,    0,    0,   40,    0,   40,   40,
 
473
    0,    0,    0,  126,    0,  126,  126,    0,    0,   44,
 
474
   44,  143,    0,    0,   44,    0,    0,    0,    0,   44,
 
475
   44,    0,    0,    0,    0,    0,    0,    0,   44,    0,
 
476
   44,    0,  143,  143,    0,    0,    0,  143,    0,    0,
 
477
    0,    0,  143,  143,   44,    0,   44,   44,    0,    0,
 
478
    0,  143,    0,  143,    0,    0,    0,    0,    0,    0,
 
479
    0,    0,    0,    0,    0,    0,    0,  143,    0,  143,
 
480
  143,
477
481
};
478
482
short socks_yycheck[] = {                                      10,
479
 
    0,  125,   87,  141,   87,  125,  125,  125,   89,   90,
480
 
   10,   89,   90,  125,  103,   87,   87,  130,  143,  228,
481
 
  125,  151,  152,   88,  274,  234,  321,  276,  314,  300,
482
 
  301,  302,  303,  328,  321,  322,   58,  324,  269,   58,
483
 
  326,  290,   58,  274,  294,  295,  255,  274,   58,  299,
484
 
  296,  297,  298,   58,  304,  305,  141,  123,  141,   58,
485
 
  142,    0,  144,  313,  295,  315,  191,  294,  299,  141,
486
 
  141,   10,  185,   58,  305,   58,  165,  304,  143,  168,
487
 
   58,  331,  332,  321,  322,  323,  313,   58,  315,  276,
488
 
  277,  278,  279,  280,  306,  307,  308,  309,  310,  237,
489
 
  316,  317,  318,  319,  320,  257,  258,   58,    0,  292,
490
 
  293,  267,  268,  282,  283,  329,  330,   58,   10,  296,
491
 
  297,  251,  252,  326,  327,  125,  191,   76,   77,   89,
492
 
   90,   58,   58,  328,  289,  123,  123,   58,   58,  270,
493
 
  270,  284,  272,    0,  328,   58,  328,   58,   58,  279,
494
 
  274,   58,  237,   10,  237,   58,   58,  269,   58,   58,
495
 
   58,  329,  274,  325,  269,  237,  237,  291,  327,  274,
496
 
  294,  295,  312,  284,   58,  299,  257,   58,    0,  257,
497
 
  304,  305,  294,  295,  328,  330,  125,  299,   10,  313,
498
 
  295,  315,  304,  305,  299,   58,  291,  125,   58,   58,
499
 
  305,  313,  125,  315,   45,  329,  330,  331,  332,  329,
500
 
  329,  329,   47,    0,    0,    0,  125,  329,  326,  331,
501
 
  332,  125,  329,   10,  125,  329,  329,    7,  125,  202,
502
 
  207,  210,    7,   95,  218,    7,    7,   98,   85,  106,
503
 
   21,  243,   -1,   -1,  226,   -1,   -1,   -1,  259,   -1,
504
 
   -1,   -1,   -1,  264,  265,   -1,   -1,   -1,   10,  259,
505
 
  260,  261,  262,  263,   -1,  265,  266,   -1,   -1,  269,
506
 
   -1,   -1,  272,  273,  274,  275,   -1,  288,   -1,  290,
507
 
   -1,  281,   -1,   -1,   -1,  285,  286,  287,  288,   -1,
508
 
   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
509
 
   -1,   -1,   -1,   -1,  304,  305,   -1,   -1,   -1,   -1,
510
 
   -1,   -1,   -1,  313,   -1,  315,   -1,   -1,   -1,   -1,
511
 
  259,  260,  261,  262,  263,   -1,  265,  266,   -1,  329,
512
 
  269,  331,  332,  272,  273,  274,  275,   -1,   -1,   -1,
513
 
   -1,   -1,  281,   -1,   -1,   -1,  285,  286,  287,  288,
514
 
   -1,   -1,   -1,  292,  293,   -1,  295,   -1,   -1,   -1,
515
 
  299,   -1,   -1,   -1,   -1,   -1,  305,  259,  260,  261,
516
 
  262,  263,  264,  265,  266,  125,   -1,  269,   -1,   -1,
517
 
  272,  273,  274,  275,   -1,   -1,   -1,   -1,  125,  281,
518
 
  329,   -1,   -1,  285,  286,  287,  288,   -1,  290,   -1,
519
 
  292,  293,  259,  260,  261,  262,  263,   -1,  265,  266,
520
 
   -1,   -1,  269,   -1,   -1,  272,  273,  274,  275,   -1,
521
 
   -1,   -1,   -1,   -1,  281,   -1,   -1,   -1,  285,  286,
522
 
  287,  288,   -1,   -1,  125,  292,  293,  259,  260,  261,
523
 
  262,  263,   -1,  265,  266,   -1,   -1,  269,   -1,  125,
 
483
    0,  125,  125,  125,  125,  125,  145,  147,   92,   93,
 
484
   10,   90,   92,   93,   90,  106,   90,  274,   90,  134,
 
485
   91,  274,  155,  156,  232,  276,  322,  269,   58,  315,
 
486
  238,   58,  274,  329,  301,  302,  303,  304,  295,   58,
 
487
  291,  327,  295,  296,  322,  323,  324,  300,  305,   58,
 
488
  125,  259,  305,  306,  296,  195,   58,  314,  300,  316,
 
489
   58,  314,    0,  316,  306,   58,  145,  322,  323,  145,
 
490
  325,  145,   10,  145,  189,   58,  147,   58,  169,  332,
 
491
  333,  172,  276,  277,  278,  279,  280,  307,  308,  309,
 
492
  310,  311,  317,  318,  319,  320,  321,  297,  298,  299,
 
493
   58,  146,  241,  148,  257,  258,  293,  294,  267,  268,
 
494
    0,  282,  283,  330,  331,  297,  298,  327,  328,   58,
 
495
   10,   58,  255,  256,  195,  125,   78,   79,   92,   93,
 
496
   58,   58,   58,  123,  329,  289,  123,  123,   58,   58,
 
497
  270,  274,  284,  276,  329,  329,    0,   58,  329,  269,
 
498
  283,   58,   58,  274,  274,   58,   10,   58,   58,   58,
 
499
   58,   58,  241,  330,  326,  241,  284,  241,  328,  241,
 
500
  313,  292,   58,   58,  295,  296,  296,  261,  329,  300,
 
501
  300,  261,    0,  331,  305,  306,  306,  125,   58,  292,
 
502
  125,   58,   10,  314,  269,  316,   58,   45,   47,  274,
 
503
  125,  125,  327,    0,    0,    7,  330,  330,  330,  330,
 
504
  331,  332,  333,  330,  330,  125,  330,  125,    0,  211,
 
505
  295,  296,  206,  125,    7,  300,  214,   98,   10,    7,
 
506
  305,  306,  101,  222,    7,   88,  109,   21,   -1,  314,
 
507
  247,  316,   -1,   -1,   -1,  230,   -1,   -1,  259,   -1,
 
508
   -1,   -1,   -1,  264,  265,  330,   -1,  332,  333,  259,
 
509
  260,  261,  262,  263,   10,  265,  266,   -1,   -1,  269,
 
510
   -1,   -1,  272,  273,  274,  275,   -1,  288,   -1,   -1,
 
511
  291,  281,   -1,   -1,   -1,  285,  286,  287,  288,   -1,
 
512
  290,   -1,   -1,  293,  294,  295,  296,   -1,   -1,   -1,
 
513
  300,   -1,   -1,   -1,   -1,  305,  306,   -1,   -1,   -1,
 
514
   -1,   -1,   -1,   -1,  314,   -1,  316,   -1,   -1,   -1,
 
515
   -1,  259,  260,  261,  262,  263,   -1,  265,  266,   -1,
 
516
  330,  269,  332,  333,  272,  273,  274,  275,   -1,   -1,
 
517
   -1,   -1,   -1,  281,   -1,   -1,   -1,  285,  286,  287,
 
518
  288,   -1,  290,   -1,   -1,  293,  294,   -1,  296,   -1,
 
519
   -1,   -1,  300,   -1,   -1,   -1,   -1,   -1,  306,  259,
 
520
  260,  261,  262,  263,  264,  265,  266,   -1,   -1,  269,
 
521
   -1,  125,  272,  273,  274,  275,   -1,   -1,  125,   -1,
 
522
   -1,  281,  330,   -1,   -1,  285,  286,  287,  288,   -1,
 
523
  290,  291,   -1,  293,  294,  259,  260,  261,  262,  263,
 
524
   -1,  265,  266,   -1,   -1,  269,   -1,   -1,  272,  273,
 
525
  274,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  125,
 
526
   -1,  285,  286,  287,  288,   -1,  290,   -1,   -1,  293,
 
527
  294,  259,  260,  261,  262,  263,   -1,  265,  266,   -1,
 
528
   -1,  269,  125,   -1,  272,  273,  274,  275,   -1,   -1,
 
529
   -1,   -1,   -1,  281,   -1,   -1,   -1,  285,  286,  287,
 
530
  288,   -1,  290,   -1,   -1,  293,  294,  259,  260,  261,
 
531
  262,  263,   -1,  265,  266,   -1,   -1,  269,   -1,   -1,
524
532
  272,  273,  274,  275,   -1,   -1,   -1,   -1,   -1,  281,
525
 
   -1,   -1,   -1,  285,  286,  287,  288,   -1,   -1,   -1,
526
 
  292,  293,  259,  260,  261,  262,  263,   -1,  265,  266,
527
 
   -1,   -1,  269,   -1,   -1,  272,  273,  274,  275,   -1,
528
 
   -1,   -1,   -1,   -1,  281,   -1,   -1,   -1,  285,  286,
529
 
  287,  288,   -1,   -1,   -1,  292,  293,  259,  260,  261,
530
 
  262,  263,   -1,  265,  266,   -1,   -1,  269,   -1,  269,
531
 
  272,  273,  274,  275,  274,   -1,   -1,   -1,   -1,  281,
532
 
   -1,   -1,  269,  285,  286,  287,  288,  274,   -1,   -1,
533
 
  292,  293,   -1,   -1,  294,  295,   -1,   -1,   -1,  299,
534
 
   -1,   -1,   -1,   -1,  304,  305,   -1,  294,  295,   -1,
535
 
   -1,   -1,  299,  313,   -1,  315,   -1,  304,  305,   -1,
536
 
   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,  315,  329,
537
 
   -1,  331,  332,  274,   -1,   -1,   -1,   -1,   -1,   -1,
538
 
   -1,   -1,  329,   -1,  331,  332,   -1,   -1,  274,   -1,
539
 
   -1,   -1,   -1,  294,  295,   -1,   -1,   -1,  299,   -1,
540
 
   -1,   -1,   -1,  304,  305,   -1,   -1,   -1,  294,  295,
541
 
   -1,   -1,  313,  299,  315,   -1,   -1,   -1,  304,  305,
542
 
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,  329,  315,
543
 
  331,  332,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
544
 
   -1,   -1,   -1,  329,   -1,  331,  332,
 
533
   -1,   -1,   -1,  285,  286,  287,  288,   -1,  290,   -1,
 
534
   -1,  293,  294,  259,  260,  261,  262,  263,   -1,  265,
 
535
  266,   -1,   -1,  269,   -1,  269,  272,  273,  274,  275,
 
536
  274,   -1,  269,   -1,   -1,  281,   -1,  274,   -1,  285,
 
537
  286,  287,  288,   -1,  290,   -1,   -1,  293,  294,   -1,
 
538
   -1,  295,  296,   -1,   -1,   -1,  300,   -1,  295,  296,
 
539
   -1,  305,  306,  300,   -1,   -1,   -1,   -1,  305,  306,
 
540
  314,   -1,  316,   -1,   -1,   -1,   -1,  314,  274,  316,
 
541
   -1,   -1,   -1,   -1,   -1,   -1,  330,   -1,  332,  333,
 
542
   -1,   -1,   -1,  330,   -1,  332,  333,   -1,   -1,  295,
 
543
  296,  274,   -1,   -1,  300,   -1,   -1,   -1,   -1,  305,
 
544
  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  314,   -1,
 
545
  316,   -1,  295,  296,   -1,   -1,   -1,  300,   -1,   -1,
 
546
   -1,   -1,  305,  306,  330,   -1,  332,  333,   -1,   -1,
 
547
   -1,  314,   -1,  316,   -1,   -1,   -1,   -1,   -1,   -1,
 
548
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,   -1,  332,
 
549
  333,
545
550
};
546
551
#define YYFINAL 3
547
552
#ifndef YYDEBUG
548
553
#define YYDEBUG 0
549
554
#endif
550
 
#define YYMAXTOKEN 332
 
555
#define YYMAXTOKEN 333
551
556
#if YYDEBUG
552
557
#if defined(__cplusplus) || __STDC__
553
558
const char * const socks_yyname[] =
567
572
"NOUNKNOWN","EXTENSION","BIND","PRIVILEGED","IOTIMEOUT","CONNECTTIMEOUT",
568
573
"METHOD","CLIENTMETHOD","NONE","GSSAPI","UNAME","RFC931","PAM","COMPATIBILITY",
569
574
"REUSEADDR","SAMEPORT","USERNAME","USER_PRIVILEGED","USER_UNPRIVILEGED",
570
 
"USER_LIBWRAP","LOGOUTPUT","LOGFILE","ROUTE","VIA","VERDICT_BLOCK",
571
 
"VERDICT_PASS","PAMSERVICENAME","PROTOCOL","PROTOCOL_TCP","PROTOCOL_UDP",
572
 
"PROTOCOL_FAKE","PROXYPROTOCOL","PROXYPROTOCOL_SOCKS_V4",
 
575
"USER_LIBWRAP","LOGOUTPUT","LOGFILE","CHILD_MAXIDLENUMBER","ROUTE","VIA",
 
576
"VERDICT_BLOCK","VERDICT_PASS","PAMSERVICENAME","PROTOCOL","PROTOCOL_TCP",
 
577
"PROTOCOL_UDP","PROTOCOL_FAKE","PROXYPROTOCOL","PROXYPROTOCOL_SOCKS_V4",
573
578
"PROXYPROTOCOL_SOCKS_V5","PROXYPROTOCOL_MSPROXY_V2","PROXYPROTOCOL_HTTP_V1_0",
574
579
"USER","COMMAND","COMMAND_BIND","COMMAND_CONNECT","COMMAND_UDPASSOCIATE",
575
580
"COMMAND_BINDREPLY","COMMAND_UDPREPLY","ACTION","LINE","LIBWRAPSTART",
607
612
"serverconfig : logoutput",
608
613
"serverconfig : serveroption",
609
614
"serverconfig : userids",
 
615
"serverconfig : childstate",
610
616
"serveroption : compatibility",
611
617
"serveroption : connecttimeout",
612
618
"serveroption : extension",
644
650
"logoutputdevice : LOGFILE",
645
651
"logoutputdevices : logoutputdevice",
646
652
"logoutputdevices : logoutputdevice logoutputdevices",
 
653
"childstate : CHILD_MAXIDLENUMBER ':' NUMBER",
647
654
"userids : user_privileged",
648
655
"userids : user_unprivileged",
649
656
"userids : user_libwrap",
798
805
short *yysslim;
799
806
YYSTYPE *yyvs;
800
807
int yystacksize;
801
 
#line 1150 "config_parse.y"
 
808
#line 1176 "config_parse.y"
802
809
 
803
810
#define INTERACTIVE             0
804
811
 
942
949
        dst = rdr_from = rdr_to = src;
943
950
}
944
951
#endif
945
 
#line 937 "y.tab.c"
 
952
#line 944 "y.tab.c"
946
953
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
947
954
#if defined(__cplusplus) || __STDC__
948
955
static int yygrowstack(void)
998
1005
yyparse()
999
1006
#endif
1000
1007
{
1001
 
    register int yym, yyn, yystate;
 
1008
    int yym, yyn, yystate;
1002
1009
#if YYDEBUG
1003
1010
#if defined(__cplusplus) || __STDC__
1004
 
    register const char *yys;
 
1011
    const char *yys;
1005
1012
#else /* !(defined(__cplusplus) || __STDC__) */
1006
 
    register char *yys;
 
1013
    char *yys;
1007
1014
#endif /* !(defined(__cplusplus) || __STDC__) */
1008
1015
 
1009
1016
    if ((yys = getenv("YYDEBUG")))
1136
1143
    switch (yyn)
1137
1144
    {
1138
1145
case 3:
1139
 
#line 270 "config_parse.y"
 
1146
#line 272 "config_parse.y"
1140
1147
{
1141
1148
#if SOCKS_SERVER
1142
1149
                protocol                        = &protocolmem;
1145
1152
        }
1146
1153
break;
1147
1154
case 4:
1148
 
#line 279 "config_parse.y"
 
1155
#line 281 "config_parse.y"
1149
1156
{ yyval.string = NULL; }
1150
1157
break;
1151
1158
case 9:
1152
 
#line 286 "config_parse.y"
 
1159
#line 288 "config_parse.y"
1153
1160
{ yyval.string = NULL; }
1154
1161
break;
1155
1162
case 13:
1156
 
#line 293 "config_parse.y"
 
1163
#line 295 "config_parse.y"
1157
1164
{
1158
1165
        }
1159
1166
break;
1160
 
case 31:
1161
 
#line 321 "config_parse.y"
 
1167
case 32:
 
1168
#line 324 "config_parse.y"
1162
1169
{
1163
1170
                yywarn("given keyword is deprecated");
1164
1171
        }
1165
1172
break;
1166
 
case 32:
1167
 
#line 325 "config_parse.y"
 
1173
case 33:
 
1174
#line 328 "config_parse.y"
1168
1175
{
1169
1176
#if SOCKS_CLIENT
1170
1177
                route.src               = src;
1176
1183
#endif
1177
1184
        }
1178
1185
break;
1179
 
case 33:
1180
 
#line 337 "config_parse.y"
 
1186
case 34:
 
1187
#line 340 "config_parse.y"
1181
1188
{
1182
1189
#if SOCKS_CLIENT
1183
1190
                command                 = &state.command;
1197
1204
#endif
1198
1205
        }
1199
1206
break;
1200
 
case 35:
1201
 
#line 361 "config_parse.y"
1202
 
{
1203
 
                        proxyprotocol->socks_v4         = 1;
1204
 
        }
1205
 
break;
1206
1207
case 36:
1207
1208
#line 364 "config_parse.y"
1208
1209
{
1209
 
                        proxyprotocol->socks_v5         = 1;
 
1210
                        proxyprotocol->socks_v4         = 1;
1210
1211
        }
1211
1212
break;
1212
1213
case 37:
1213
1214
#line 367 "config_parse.y"
1214
1215
{
1215
 
                        proxyprotocol->msproxy_v2       = 1;
 
1216
                        proxyprotocol->socks_v5         = 1;
1216
1217
        }
1217
1218
break;
1218
1219
case 38:
1219
1220
#line 370 "config_parse.y"
1220
1221
{
 
1222
                        proxyprotocol->msproxy_v2       = 1;
 
1223
        }
 
1224
break;
 
1225
case 39:
 
1226
#line 373 "config_parse.y"
 
1227
{
1221
1228
                        proxyprotocol->http_v1_0        = 1;
1222
1229
        }
1223
1230
break;
1224
 
case 42:
1225
 
#line 382 "config_parse.y"
 
1231
case 43:
 
1232
#line 385 "config_parse.y"
1226
1233
{
1227
1234
#if SOCKS_SERVER
1228
1235
#if !HAVE_LIBWRAP
1234
1241
#endif /* SOCKS_SERVER */
1235
1242
        }
1236
1243
break;
1237
 
case 46:
1238
 
#line 401 "config_parse.y"
 
1244
case 47:
 
1245
#line 404 "config_parse.y"
1239
1246
{
1240
1247
                        extension->bind = 1;
1241
1248
        }
1242
1249
break;
1243
 
case 49:
1244
 
#line 411 "config_parse.y"
 
1250
case 50:
 
1251
#line 414 "config_parse.y"
1245
1252
{
1246
1253
#if SOCKS_SERVER
1247
1254
                addinternal(ruleaddress);
1248
1255
#endif
1249
1256
        }
1250
1257
break;
1251
 
case 50:
1252
 
#line 418 "config_parse.y"
 
1258
case 51:
 
1259
#line 421 "config_parse.y"
1253
1260
{
1254
1261
#if SOCKS_SERVER
1255
1262
        static struct ruleaddress_t mem;
1265
1272
#endif
1266
1273
        }
1267
1274
break;
1268
 
case 51:
1269
 
#line 434 "config_parse.y"
 
1275
case 52:
 
1276
#line 437 "config_parse.y"
1270
1277
{
1271
1278
#if SOCKS_SERVER
1272
1279
                addexternal(ruleaddress);
1273
1280
#endif
1274
1281
        }
1275
1282
break;
1276
 
case 52:
1277
 
#line 441 "config_parse.y"
 
1283
case 53:
 
1284
#line 444 "config_parse.y"
1278
1285
{
1279
1286
#if SOCKS_SERVER
1280
1287
                static struct ruleaddress_t mem;
1283
1290
#endif
1284
1291
        }
1285
1292
break;
1286
 
case 53:
1287
 
#line 450 "config_parse.y"
 
1293
case 54:
 
1294
#line 453 "config_parse.y"
1288
1295
{
1289
1296
#if SOCKS_SERVER
1290
1297
                sockscf.external.rotation = ROTATION_NONE;
1291
1298
        }
1292
1299
break;
1293
 
case 54:
1294
 
#line 454 "config_parse.y"
 
1300
case 55:
 
1301
#line 457 "config_parse.y"
1295
1302
{
1296
1303
#if !HAVE_ROUTE_SOURCE
1297
1304
                yyerror("don't have code to discover route/address source on platform");
1301
1308
#endif /* SOCKS_SERVER */
1302
1309
        }
1303
1310
break;
1304
 
case 59:
1305
 
#line 472 "config_parse.y"
 
1311
case 60:
 
1312
#line 475 "config_parse.y"
1306
1313
{
1307
1314
                const char *syslogname = "syslog";
1308
1315
 
1397
1404
                        }
1398
1405
        }
1399
1406
break;
1400
 
case 65:
1401
 
#line 576 "config_parse.y"
 
1407
case 63:
 
1408
#line 575 "config_parse.y"
 
1409
{
 
1410
#if SOCKS_SERVER
 
1411
                if (atoi(yyvsp[0].string) < SOCKD_FREESLOTS)
 
1412
                        yyerror("child.maxidlenumber can't be less than SOCKD_FREESLOTS (%d)",
 
1413
                        SOCKD_FREESLOTS);
 
1414
 
 
1415
                sockscf.child.maxidlenumber = atoi(yyvsp[0].string);
 
1416
#endif
 
1417
        }
 
1418
break;
 
1419
case 67:
 
1420
#line 592 "config_parse.y"
1402
1421
{
1403
1422
#if SOCKS_SERVER
1404
1423
                sockscf.uid.privileged                  = yyvsp[0].uid;
1406
1425
#endif
1407
1426
        }
1408
1427
break;
1409
 
case 66:
1410
 
#line 584 "config_parse.y"
 
1428
case 68:
 
1429
#line 600 "config_parse.y"
1411
1430
{
1412
1431
#if SOCKS_SERVER
1413
1432
                sockscf.uid.unprivileged                        = yyvsp[0].uid;
1415
1434
#endif
1416
1435
        }
1417
1436
break;
1418
 
case 67:
1419
 
#line 592 "config_parse.y"
 
1437
case 69:
 
1438
#line 608 "config_parse.y"
1420
1439
{
1421
1440
#if HAVE_LIBWRAP && SOCKS_SERVER
1422
1441
                sockscf.uid.libwrap                     = yyvsp[0].uid;
1426
1445
#endif /* !HAVE_LIBWRAP */
1427
1446
        }
1428
1447
break;
1429
 
case 68:
1430
 
#line 603 "config_parse.y"
 
1448
case 70:
 
1449
#line 619 "config_parse.y"
1431
1450
{
1432
1451
                struct passwd *pw;
1433
1452
 
1437
1456
                        yyval.uid = pw->pw_uid;
1438
1457
        }
1439
1458
break;
1440
 
case 69:
1441
 
#line 613 "config_parse.y"
 
1459
case 71:
 
1460
#line 629 "config_parse.y"
1442
1461
{
1443
1462
#if SOCKS_SERVER
1444
1463
                sockscf.timeout.io = (time_t)atol(yyvsp[0].string);
1445
1464
#endif
1446
1465
        }
1447
1466
break;
1448
 
case 70:
1449
 
#line 620 "config_parse.y"
 
1467
case 72:
 
1468
#line 636 "config_parse.y"
1450
1469
{
1451
1470
#if SOCKS_SERVER
1452
1471
                sockscf.timeout.negotiate = (time_t)atol(yyvsp[0].string);
1453
1472
#endif
1454
1473
        }
1455
1474
break;
1456
 
case 71:
1457
 
#line 627 "config_parse.y"
 
1475
case 73:
 
1476
#line 643 "config_parse.y"
1458
1477
{
1459
1478
                sockscf.option.debug = atoi(yyvsp[0].string);
1460
1479
        }
1461
1480
break;
1462
 
case 73:
1463
 
#line 635 "config_parse.y"
 
1481
case 75:
 
1482
#line 651 "config_parse.y"
1464
1483
{
1465
1484
#if SOCKS_SERVER
1466
1485
                sockscf.compat.reuseaddr = 1;
1467
1486
        }
1468
1487
break;
1469
 
case 74:
1470
 
#line 639 "config_parse.y"
 
1488
case 76:
 
1489
#line 655 "config_parse.y"
1471
1490
{
1472
1491
                sockscf.compat.sameport = 1;
1473
1492
#endif
1474
1493
        }
1475
1494
break;
1476
 
case 78:
1477
 
#line 652 "config_parse.y"
 
1495
case 80:
 
1496
#line 668 "config_parse.y"
1478
1497
{
1479
1498
                        sockscf.resolveprotocol = RESOLVEPROTOCOL_FAKE;
1480
1499
        }
1481
1500
break;
1482
 
case 79:
1483
 
#line 655 "config_parse.y"
 
1501
case 81:
 
1502
#line 671 "config_parse.y"
1484
1503
{
1485
1504
#if HAVE_NO_RESOLVESTUFF
1486
1505
                        yyerror("resolveprotocol keyword not supported on this installation");
1489
1508
#endif /* !HAVE_NO_RESOLVESTUFF */
1490
1509
        }
1491
1510
break;
1492
 
case 80:
1493
 
#line 662 "config_parse.y"
 
1511
case 82:
 
1512
#line 678 "config_parse.y"
1494
1513
{
1495
1514
                        sockscf.resolveprotocol = RESOLVEPROTOCOL_UDP;
1496
1515
        }
1497
1516
break;
1498
 
case 82:
1499
 
#line 670 "config_parse.y"
 
1517
case 84:
 
1518
#line 686 "config_parse.y"
1500
1519
{
1501
1520
#if HAVE_LIBWRAP && SOCKS_SERVER
1502
1521
                        sockscf.srchost.nomismatch = 1;
1503
1522
        }
1504
1523
break;
1505
 
case 83:
1506
 
#line 674 "config_parse.y"
 
1524
case 85:
 
1525
#line 690 "config_parse.y"
1507
1526
{
1508
1527
                        sockscf.srchost.nounknown = 1;
1509
1528
#else
1511
1530
#endif
1512
1531
        }
1513
1532
break;
1514
 
case 87:
1515
 
#line 690 "config_parse.y"
 
1533
case 89:
 
1534
#line 706 "config_parse.y"
1516
1535
{
1517
1536
#if SOCKS_SERVER
1518
1537
        methodv = sockscf.methodv;
1521
1540
#endif
1522
1541
        }
1523
1542
break;
1524
 
case 89:
1525
 
#line 699 "config_parse.y"
 
1543
case 91:
 
1544
#line 715 "config_parse.y"
1526
1545
{
1527
1546
#if SOCKS_SERVER
1528
1547
        methodv = sockscf.clientmethodv;
1531
1550
#endif
1532
1551
        }
1533
1552
break;
1534
 
case 91:
1535
 
#line 708 "config_parse.y"
 
1553
case 93:
 
1554
#line 724 "config_parse.y"
1536
1555
{
1537
1556
                ADDMETHOD(AUTHMETHOD_NONE);
1538
1557
        }
1539
1558
break;
1540
 
case 92:
1541
 
#line 711 "config_parse.y"
 
1559
case 94:
 
1560
#line 727 "config_parse.y"
1542
1561
{
1543
1562
                yyerror("%s not supported", AUTHMETHOD_GSSAPIs);
1544
1563
        }
1545
1564
break;
1546
 
case 93:
1547
 
#line 714 "config_parse.y"
 
1565
case 95:
 
1566
#line 730 "config_parse.y"
1548
1567
{
1549
1568
                ADDMETHOD(AUTHMETHOD_UNAME);
1550
1569
        }
1551
1570
break;
1552
 
case 94:
1553
 
#line 717 "config_parse.y"
 
1571
case 96:
 
1572
#line 733 "config_parse.y"
1554
1573
{
1555
1574
#if HAVE_LIBWRAP && SOCKS_SERVER
1556
1575
                ADDMETHOD(AUTHMETHOD_RFC931);
1559
1578
#endif /* !HAVE_LIBWRAP */
1560
1579
        }
1561
1580
break;
1562
 
case 95:
1563
 
#line 724 "config_parse.y"
 
1581
case 97:
 
1582
#line 740 "config_parse.y"
1564
1583
{
1565
1584
#if !HAVE_PAM
1566
1585
                yyerror("method %s requires pamlibrary", AUTHMETHOD_PAMs);
1569
1588
#endif /* !HAVE_PAM */
1570
1589
        }
1571
1590
break;
1572
 
case 98:
1573
 
#line 740 "config_parse.y"
1574
 
{
1575
 
#if SOCKS_SERVER
1576
 
                rule.src                        = src;
1577
 
                rule.dst                        = dst;
1578
 
                rule.rdr_from   = rdr_from;
1579
 
                rule.rdr_to             = rdr_to;
1580
 
 
1581
 
                addclientrule(&rule);
1582
 
 
1583
 
#endif
1584
 
        }
1585
 
break;
1586
1591
case 100:
1587
1592
#line 756 "config_parse.y"
1588
 
{ yyval.string = NULL; }
 
1593
{
 
1594
#if SOCKS_SERVER
 
1595
                rule.src                        = src;
 
1596
                rule.dst                        = dst;
 
1597
                rule.rdr_from   = rdr_from;
 
1598
                rule.rdr_to             = rdr_to;
 
1599
 
 
1600
                addclientrule(&rule);
 
1601
 
 
1602
#endif
 
1603
        }
1589
1604
break;
1590
1605
case 102:
1591
 
#line 760 "config_parse.y"
 
1606
#line 772 "config_parse.y"
 
1607
{ yyval.string = NULL; }
 
1608
break;
 
1609
case 104:
 
1610
#line 776 "config_parse.y"
1592
1611
{
1593
1612
#if SOCKS_SERVER
1594
1613
                rule.src                        = src;
1600
1619
#endif
1601
1620
        }
1602
1621
break;
1603
 
case 104:
1604
 
#line 774 "config_parse.y"
1605
 
{ checkmodule("bandwidth"); }
1606
 
break;
1607
 
case 108:
1608
 
#line 778 "config_parse.y"
1609
 
{ checkmodule("redirect"); }
1610
 
break;
1611
 
case 109:
1612
 
#line 781 "config_parse.y"
 
1622
case 106:
 
1623
#line 790 "config_parse.y"
 
1624
{
 
1625
#if SOCKS_SERVER
 
1626
                        checkmodule("bandwidth");
 
1627
#endif
 
1628
        }
 
1629
break;
 
1630
case 110:
 
1631
#line 798 "config_parse.y"
 
1632
{
 
1633
#if SOCKS_SERVER
 
1634
                        checkmodule("redirect");
 
1635
#endif
 
1636
        }
 
1637
break;
 
1638
case 111:
 
1639
#line 805 "config_parse.y"
1613
1640
{ yyval.string = NULL; }
1614
1641
break;
1615
 
case 116:
1616
 
#line 792 "config_parse.y"
 
1642
case 118:
 
1643
#line 816 "config_parse.y"
1617
1644
{
1618
1645
#if SOCKS_SERVER
1619
1646
                ruleinit(&rule);
1620
1647
                rule.verdict    = VERDICT_BLOCK;
1621
1648
        }
1622
1649
break;
1623
 
case 117:
1624
 
#line 797 "config_parse.y"
 
1650
case 119:
 
1651
#line 821 "config_parse.y"
1625
1652
{
1626
1653
                ruleinit(&rule);
1627
1654
                rule.verdict    = VERDICT_PASS;
1628
1655
#endif
1629
1656
        }
1630
1657
break;
1631
 
case 119:
1632
 
#line 808 "config_parse.y"
 
1658
case 121:
 
1659
#line 832 "config_parse.y"
1633
1660
{
1634
1661
                        command->bind = 1;
1635
1662
        }
1636
1663
break;
1637
 
case 120:
1638
 
#line 811 "config_parse.y"
 
1664
case 122:
 
1665
#line 835 "config_parse.y"
1639
1666
{
1640
1667
                        command->connect = 1;
1641
1668
        }
1642
1669
break;
1643
 
case 121:
1644
 
#line 814 "config_parse.y"
 
1670
case 123:
 
1671
#line 838 "config_parse.y"
1645
1672
{
1646
1673
                        command->udpassociate = 1;
1647
1674
        }
1648
1675
break;
1649
 
case 122:
1650
 
#line 820 "config_parse.y"
 
1676
case 124:
 
1677
#line 844 "config_parse.y"
1651
1678
{
1652
1679
                        command->bindreply = 1;
1653
1680
        }
1654
1681
break;
1655
 
case 123:
1656
 
#line 824 "config_parse.y"
 
1682
case 125:
 
1683
#line 848 "config_parse.y"
1657
1684
{
1658
1685
                        command->udpreply = 1;
1659
1686
        }
1660
1687
break;
1661
 
case 127:
1662
 
#line 836 "config_parse.y"
 
1688
case 129:
 
1689
#line 860 "config_parse.y"
1663
1690
{
1664
1691
                protocol->tcp = 1;
1665
1692
        }
1666
1693
break;
1667
 
case 128:
1668
 
#line 839 "config_parse.y"
 
1694
case 130:
 
1695
#line 863 "config_parse.y"
1669
1696
{
1670
1697
                protocol->udp = 1;
1671
1698
        }
1672
1699
break;
1673
 
case 134:
1674
 
#line 856 "config_parse.y"
 
1700
case 136:
 
1701
#line 880 "config_parse.y"
1675
1702
{
1676
1703
#if SOCKS_SERVER
1677
1704
                static bw_t bwmeminit;
1683
1710
                if ((rule.bw = (bw_t *)malloc(sizeof(*rule.bw))) == NULL)
1684
1711
                        serr(EXIT_FAILURE, NOMEM);
1685
1712
                *rule.bw = bwmeminit;
1686
 
                rule.bw->maxbps = atoi(yyvsp[0].string);
 
1713
                if ((rule.bw->maxbps = atoi(yyvsp[0].string)) <= 0)
 
1714
                        yyerror("bandwidth value must be greater than 0");
 
1715
                        
1687
1716
#endif /* SOCKS_SERVER */
1688
1717
        }
1689
1718
break;
1690
 
case 136:
1691
 
#line 876 "config_parse.y"
 
1719
case 138:
 
1720
#line 902 "config_parse.y"
1692
1721
{
1693
1722
#if SOCKS_SERVER
1694
1723
        rule.log.connect = 1;
1695
1724
        }
1696
1725
break;
1697
 
case 137:
1698
 
#line 880 "config_parse.y"
 
1726
case 139:
 
1727
#line 906 "config_parse.y"
1699
1728
{
1700
1729
                        rule.log.data = 1;
1701
1730
        }
1702
1731
break;
1703
 
case 138:
1704
 
#line 883 "config_parse.y"
 
1732
case 140:
 
1733
#line 909 "config_parse.y"
1705
1734
{
1706
1735
                        rule.log.disconnect = 1;
1707
1736
        }
1708
1737
break;
1709
 
case 139:
1710
 
#line 886 "config_parse.y"
 
1738
case 141:
 
1739
#line 912 "config_parse.y"
1711
1740
{
1712
1741
                        rule.log.error = 1;
1713
1742
        }
1714
1743
break;
1715
 
case 140:
1716
 
#line 889 "config_parse.y"
 
1744
case 142:
 
1745
#line 915 "config_parse.y"
1717
1746
{
1718
1747
                        rule.log.iooperation = 1;
1719
1748
#endif
1720
1749
        }
1721
1750
break;
1722
 
case 143:
1723
 
#line 900 "config_parse.y"
 
1751
case 145:
 
1752
#line 926 "config_parse.y"
1724
1753
{
1725
1754
#if HAVE_PAM && SOCKS_SERVER
1726
1755
                if (strlen(yyvsp[0].string) >= sizeof(rule.pamservicename))
1731
1760
#endif /* HAVE_PAM */
1732
1761
        }
1733
1762
break;
1734
 
case 144:
1735
 
#line 911 "config_parse.y"
 
1763
case 146:
 
1764
#line 937 "config_parse.y"
1736
1765
{
1737
1766
#if HAVE_LIBWRAP && SOCKS_SERVER
1738
1767
                struct request_info request;
1758
1787
#endif
1759
1788
        }
1760
1789
break;
1761
 
case 155:
1762
 
#line 961 "config_parse.y"
1763
 
{ yyval.string = NULL; }
1764
 
break;
1765
1790
case 157:
1766
 
#line 965 "config_parse.y"
 
1791
#line 987 "config_parse.y"
 
1792
{ yyval.string = NULL; }
 
1793
break;
 
1794
case 159:
 
1795
#line 991 "config_parse.y"
1767
1796
{
1768
1797
                addressinit(&src);
1769
1798
        }
1770
1799
break;
1771
 
case 158:
1772
 
#line 970 "config_parse.y"
 
1800
case 160:
 
1801
#line 996 "config_parse.y"
1773
1802
{
1774
1803
                addressinit(&dst);
1775
1804
        }
1776
1805
break;
1777
 
case 159:
1778
 
#line 975 "config_parse.y"
 
1806
case 161:
 
1807
#line 1001 "config_parse.y"
1779
1808
{
1780
1809
                addressinit(&rdr_from);
1781
1810
        }
1782
1811
break;
1783
 
case 160:
1784
 
#line 980 "config_parse.y"
 
1812
case 162:
 
1813
#line 1006 "config_parse.y"
1785
1814
{
1786
1815
                addressinit(&rdr_to);
1787
1816
        }
1788
1817
break;
1789
 
case 161:
1790
 
#line 987 "config_parse.y"
 
1818
case 163:
 
1819
#line 1013 "config_parse.y"
1791
1820
{
1792
1821
#if SOCKS_CLIENT
1793
1822
                addressinit(&gw);
1794
1823
#endif
1795
1824
        }
1796
1825
break;
1797
 
case 174:
1798
 
#line 1017 "config_parse.y"
 
1826
case 176:
 
1827
#line 1043 "config_parse.y"
1799
1828
{
1800
1829
                *atype = SOCKS_ADDR_IPV4;
1801
1830
 
1803
1832
                        yyerror("bad address: %s", yyvsp[0].string);
1804
1833
        }
1805
1834
break;
1806
 
case 175:
1807
 
#line 1026 "config_parse.y"
 
1835
case 177:
 
1836
#line 1052 "config_parse.y"
1808
1837
{
1809
1838
                if (atoi(yyvsp[0].string) < 0 || atoi(yyvsp[0].string) > 32)
1810
1839
                        yyerror("bad netmask: %d", yyvsp[0].string);
1813
1842
                = atoi(yyvsp[0].string) == 0 ? 0 : htonl(0xffffffff << (32 - atoi(yyvsp[0].string)));
1814
1843
        }
1815
1844
break;
1816
 
case 176:
1817
 
#line 1033 "config_parse.y"
 
1845
case 178:
 
1846
#line 1059 "config_parse.y"
1818
1847
{
1819
1848
                        if (!inet_aton(yyvsp[0].string, netmask))
1820
1849
                                yyerror("bad netmask: %s", yyvsp[0].string);
1821
1850
        }
1822
1851
break;
1823
 
case 177:
1824
 
#line 1039 "config_parse.y"
 
1852
case 179:
 
1853
#line 1065 "config_parse.y"
1825
1854
{
1826
1855
                *atype = SOCKS_ADDR_DOMAIN;
1827
1856
 
1830
1859
                strcpy(domain, yyvsp[0].string);
1831
1860
        }
1832
1861
break;
1833
 
case 178:
1834
 
#line 1048 "config_parse.y"
 
1862
case 180:
 
1863
#line 1074 "config_parse.y"
1835
1864
{
1836
1865
                *atype = SOCKS_ADDR_IFNAME;
1837
1866
 
1840
1869
                strcpy(ifname, yyvsp[0].string);
1841
1870
        }
1842
1871
break;
1843
 
case 179:
1844
 
#line 1058 "config_parse.y"
 
1872
case 181:
 
1873
#line 1084 "config_parse.y"
1845
1874
{
1846
1875
                *atype = SOCKS_ADDR_DOMAIN;
1847
1876
 
1854
1883
#endif
1855
1884
        }
1856
1885
break;
1857
 
case 180:
1858
 
#line 1071 "config_parse.y"
 
1886
case 182:
 
1887
#line 1097 "config_parse.y"
1859
1888
{ yyval.string = NULL; }
1860
1889
break;
1861
 
case 186:
1862
 
#line 1084 "config_parse.y"
 
1890
case 188:
 
1891
#line 1110 "config_parse.y"
1863
1892
{
1864
1893
                *port_tcp       = htons((in_port_t)atoi(yyvsp[0].string));
1865
1894
                *port_udp       = htons((in_port_t)atoi(yyvsp[0].string));
1866
1895
        }
1867
1896
break;
1868
 
case 187:
1869
 
#line 1090 "config_parse.y"
 
1897
case 189:
 
1898
#line 1116 "config_parse.y"
1870
1899
{
1871
1900
                ruleaddress->portend            = htons((in_port_t)atoi(yyvsp[0].string));
1872
1901
                ruleaddress->operator   = range;
1873
1902
        }
1874
1903
break;
1875
 
case 188:
1876
 
#line 1096 "config_parse.y"
 
1904
case 190:
 
1905
#line 1122 "config_parse.y"
1877
1906
{
1878
1907
                struct servent  *service;
1879
1908
                struct protocol_t       protocolunset;
1920
1949
                        *port_udp = *port_tcp;
1921
1950
        }
1922
1951
break;
1923
 
case 189:
1924
 
#line 1144 "config_parse.y"
 
1952
case 191:
 
1953
#line 1170 "config_parse.y"
1925
1954
{
1926
1955
                *operator = string2operator(yyvsp[0].string);
1927
1956
        }
1928
1957
break;
1929
 
#line 1921 "y.tab.c"
 
1958
#line 1950 "y.tab.c"
1930
1959
    }
1931
1960
    yyssp -= yym;
1932
1961
    yystate = *yyssp;