| 1 | .\" -*-nroff-*- |
| 2 | .\" |
| 3 | .\" Manual page for `with-authinfo-kludge'. |
| 4 | .\" |
| 5 | .\" (c) 2016 Mark Wooding |
| 6 | .\" |
| 7 | . |
| 8 | .\"----- Licensing notice --------------------------------------------------- |
| 9 | .\" |
| 10 | .\" This program is free software; you can redistribute it and/or modify |
| 11 | .\" it under the terms of the GNU General Public License as published by |
| 12 | .\" the Free Software Foundation; either version 2 of the License, or |
| 13 | .\" (at your option) any later version. |
| 14 | .\" |
| 15 | .\" This program is distributed in the hope that it will be useful, |
| 16 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 17 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 18 | .\" GNU General Public License for more details. |
| 19 | .\" |
| 20 | .\" You should have received a copy of the GNU General Public License |
| 21 | .\" along with this program; if not, write to the Free Software Foundation, |
| 22 | .\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| 23 | . |
| 24 | .ie t \{\ |
| 25 | . ds o \(bu |
| 26 | .\} |
| 27 | .el \{\ |
| 28 | . ds o o |
| 29 | .\} |
| 30 | . |
| 31 | .de hP |
| 32 | .IP |
| 33 | \h'-\w'\fB\\$1\ \fP'u'\fB\\$1\ \fP\c |
| 34 | .. |
| 35 | . |
| 36 | .de VS |
| 37 | .sp 1 |
| 38 | .RS |
| 39 | .nf |
| 40 | .ft B |
| 41 | .. |
| 42 | .de VE |
| 43 | .ft R |
| 44 | .fi |
| 45 | .RE |
| 46 | .sp 1 |
| 47 | .. |
| 48 | . |
| 49 | .TH with-authinfo-kludge 1 "23 April 2016" |
| 50 | . |
| 51 | .\"-------------------------------------------------------------------------- |
| 52 | .SH NAME |
| 53 | with-authinfo-kludge \- run a newsreader with AUTHINFO GENERIC support |
| 54 | . |
| 55 | .SH SYNOPSIS |
| 56 | with-authinfo-kludge |
| 57 | .RB [ \-v ] |
| 58 | .RB [ \-d |
| 59 | .IR dir ] |
| 60 | .RB [ \-f |
| 61 | .IR conf ] |
| 62 | .RB [ \-t |
| 63 | .IR tag ] |
| 64 | .br |
| 65 | \h'5m'\c |
| 66 | [ |
| 67 | .BI + server |
| 68 | .RI [ param \fR= value |
| 69 | \&...] \&...] |
| 70 | .RB [ + ] |
| 71 | .br |
| 72 | \h'5m'\c |
| 73 | .I command |
| 74 | .RI [ args |
| 75 | \&...] |
| 76 | . |
| 77 | .\"-------------------------------------------------------------------------- |
| 78 | .SH DESCRIPTION |
| 79 | . |
| 80 | The |
| 81 | .B with-authinfo-kludge |
| 82 | program is an |
| 83 | .I adverbial modifier |
| 84 | which runs another command |
| 85 | (typically a newsreader) |
| 86 | in an environment in which it can, |
| 87 | transparently to it, |
| 88 | make connections to certain NNTP servers |
| 89 | which usually require |
| 90 | .B AUTHINFO GENERIC |
| 91 | authentication before they'll permit clients to read or post. |
| 92 | This is useful because support for |
| 93 | .B AUTHINFO GENERIC |
| 94 | has never been especially widely implemented by newsreaders |
| 95 | and now seems to be being withdrawn from those newsreaders |
| 96 | which used to support it. |
| 97 | .PP |
| 98 | In the simple case, you say something like |
| 99 | .VS |
| 100 | with-authinfo-kludge slrn |
| 101 | .VE |
| 102 | and then |
| 103 | .B slrn |
| 104 | will start up, |
| 105 | connect to your default NNTP server |
| 106 | (as named in the |
| 107 | .B NNTPSERVER |
| 108 | environment variable), |
| 109 | authenticate to it as needed, |
| 110 | and let you read and post news. |
| 111 | In more complicated cases, |
| 112 | .B with-authinfo-kludge |
| 113 | can handle multiple NNTP servers, |
| 114 | set up SSH forwarding for them, |
| 115 | offer different authentication credentials to them, |
| 116 | and hide the fact that they might be running on nonstandard ports. |
| 117 | .PP |
| 118 | The |
| 119 | .B with-authinfo-kludge |
| 120 | program doesn't do all of this itself: |
| 121 | it depends on some other tools existing on the system in which it runs. |
| 122 | (It doesn't need anything special running on the server system.) |
| 123 | The external dependencies are as follows. |
| 124 | .hP \*o |
| 125 | The |
| 126 | .B authinfo-kludge |
| 127 | program, by Richard Kettlewell, |
| 128 | is a simple proxy which relays commands and responses |
| 129 | between the client (on stdin/stdout) and server (over TCP), |
| 130 | and responds transparently to authentication requests from the server. |
| 131 | .hP \*o |
| 132 | The |
| 133 | .B noip |
| 134 | hack, by Mark Wooding, |
| 135 | is an |
| 136 | .B LD_PRELOAD |
| 137 | library which selectively uses Unix-domain sockets |
| 138 | in place of IPv4 or IPv6 sockets. |
| 139 | . |
| 140 | .SS "Command line" |
| 141 | The |
| 142 | .B with-authinfo-kludge |
| 143 | program accepts a small number of options |
| 144 | before its main command-line arguments. |
| 145 | .TP |
| 146 | .B \-h |
| 147 | Write help about the command-line syntax to standard output, |
| 148 | and exit with status zero. |
| 149 | .TP |
| 150 | .BI "\-d " dir |
| 151 | Use |
| 152 | .I dir |
| 153 | as the `runtime directory', |
| 154 | which is used to store sockets and other working files |
| 155 | while |
| 156 | .B with-authinfo-kludge |
| 157 | is running. |
| 158 | By default, it will choose an appropriate place |
| 159 | in a moderately complicated manner described below; |
| 160 | this option lets you override its choice |
| 161 | in order to achieve special effects. |
| 162 | .TP |
| 163 | .BI "\-f " conf |
| 164 | Read configuration from |
| 165 | .IR conf . |
| 166 | The default is somewhat complicated; |
| 167 | see below. |
| 168 | .TP |
| 169 | .BI "\-t " tag |
| 170 | Use |
| 171 | .I tag |
| 172 | to distinguish this usage of |
| 173 | .B with-authinfo-kludge |
| 174 | from others. |
| 175 | The tag is used to select default configuration files |
| 176 | and runtime directories. |
| 177 | By default, the basename of the |
| 178 | .I command |
| 179 | is used. |
| 180 | .TP |
| 181 | .B "\-v" |
| 182 | Print messages explaining what |
| 183 | .B with-authinfo-kludge |
| 184 | is doing to standard error. |
| 185 | By default, |
| 186 | .B with-authinfo-kludge |
| 187 | does its thing silently unless there are problems. |
| 188 | .PP |
| 189 | The |
| 190 | .I command |
| 191 | argument names the command which should be run |
| 192 | with the various proxy arrangements which it is the task of |
| 193 | .B with-authinfo-kludge |
| 194 | to arrange; it will be passed the |
| 195 | .IR args , |
| 196 | if any. |
| 197 | The command name and arguments are not subject to |
| 198 | interpretation by the shell; |
| 199 | if, for some reason, you wanted to make use of shell features, |
| 200 | you should specify a command of the form |
| 201 | .B /bin/sh |
| 202 | .B \-c |
| 203 | .IR shell-fragment . |
| 204 | .PP |
| 205 | Between the options (if any) and the |
| 206 | .I command |
| 207 | name, |
| 208 | there may be a number of server configurations. |
| 209 | If any are present, they take the place of any configuration file: |
| 210 | an error is reported if a |
| 211 | .B \-f |
| 212 | option was passed. |
| 213 | A server configuration starts with |
| 214 | an argument consisting of a server name prefixed by a |
| 215 | .RB ` + ' |
| 216 | character: |
| 217 | .IP |
| 218 | .BI + server |
| 219 | .PP |
| 220 | This may be followed by assignments |
| 221 | .IP |
| 222 | .IB param = value |
| 223 | .PP |
| 224 | which set configuration parameters |
| 225 | for the previously-named server. |
| 226 | Such a server configuration on the command line |
| 227 | is treated exactly the same as a configuration-file section |
| 228 | .IP |
| 229 | .BI [ server ] |
| 230 | .br |
| 231 | .IB param = value |
| 232 | .br |
| 233 | \&... |
| 234 | .PP |
| 235 | See below for details about the configuration file. |
| 236 | .PP |
| 237 | To hedge against the |
| 238 | .IR command 's |
| 239 | name containing an |
| 240 | .RB ` = ' |
| 241 | or, less plausibly, beginning with |
| 242 | .RB ` + ', |
| 243 | an argument consisting of a |
| 244 | .RB ` + ' |
| 245 | sign on its own marks the end of the server configurations: |
| 246 | the following argument will be interpreted as the command name |
| 247 | regardless of its syntactic form. |
| 248 | If there is a |
| 249 | .RB ` + ' |
| 250 | marker, but no server configurations, |
| 251 | then the configuration file is read, |
| 252 | or the default configuration is used, |
| 253 | as usual. |
| 254 | . |
| 255 | .SS "Configuration file" |
| 256 | The |
| 257 | .B with-authinfo-kludge |
| 258 | program reads configuration from a standard-ish |
| 259 | .RB ` .ini '-format |
| 260 | file. |
| 261 | The file consists of parameter settings of the form |
| 262 | .IP |
| 263 | .I param |
| 264 | .B = |
| 265 | .I value |
| 266 | .PP |
| 267 | divided into sections by headers of the form |
| 268 | .IP |
| 269 | .BI [ name ] |
| 270 | .PP |
| 271 | Whitespace around the |
| 272 | .IR name , |
| 273 | .I param |
| 274 | and |
| 275 | .I value |
| 276 | strings is discarded. |
| 277 | A section |
| 278 | .I name |
| 279 | may itself contain square brackets, |
| 280 | and they need not be properly nested. |
| 281 | There is no syntax for continuing values over more than one line. |
| 282 | .PP |
| 283 | The file may also contain blank lines, |
| 284 | and comment lines whose first non-whitespace character is either |
| 285 | .RB ` # ' |
| 286 | or |
| 287 | .RB ` ; '. |
| 288 | All such lines are ignored. |
| 289 | .PP |
| 290 | Parameter settings apply to the section named in the most recent |
| 291 | setion header. |
| 292 | Settings appearing before the first section header apply to |
| 293 | the special section named |
| 294 | .BR @GLOBAL , |
| 295 | just as if a line |
| 296 | .IP |
| 297 | .B [@GLOBAL] |
| 298 | .PP |
| 299 | appeared at the very top of the file. |
| 300 | It is permitted (though not usually expected) |
| 301 | for several section headers to have the same name; |
| 302 | in this case, |
| 303 | all of the settings following any of the occurrences are gathered together, |
| 304 | just as if they'd all appeared under a single header, |
| 305 | in the same order. |
| 306 | If the same parameter is assigned more than once, |
| 307 | then only the |
| 308 | .I last |
| 309 | assignment has any effect. |
| 310 | .PP |
| 311 | With the exception of the |
| 312 | .B @GLOBAL |
| 313 | section, |
| 314 | each section header should name an NNTP server. |
| 315 | .PP |
| 316 | The following server parameters are recognized. |
| 317 | .TP |
| 318 | .BI local= host\fR[ : port \fR] |
| 319 | Sets the NNTP server address which the newsreader command |
| 320 | expects to connect to. |
| 321 | This does |
| 322 | .I not |
| 323 | have to be an address local to the machine on which |
| 324 | .B with-authinfo-kludge |
| 325 | runs. |
| 326 | It defaults to the |
| 327 | .I server |
| 328 | name from the section heading |
| 329 | (which must therefore be in the appropriate format), |
| 330 | and may be equal to the |
| 331 | .I remote |
| 332 | address (below) without causing difficulty. |
| 333 | Note that |
| 334 | .B with-authinfo-kludge |
| 335 | will not do anything to encourage the client |
| 336 | to connect to the right address; |
| 337 | its caller must arrange to configure the client correctly, |
| 338 | e.g., by setting the |
| 339 | .B NNTPSERVER |
| 340 | environment variable appropriately. |
| 341 | .TP |
| 342 | .BI nntpauth= "parameter arguments\fR..." |
| 343 | Set the AUTHINFO GENERIC authentication parameter and arguments |
| 344 | to use for this server. |
| 345 | The default is to use the settings from the |
| 346 | .B NNTPAUTH |
| 347 | environment variable. |
| 348 | .TP |
| 349 | .BI remote= host\fR[ : port \fR] |
| 350 | Sets the real address of the NNTP server which |
| 351 | .BR with-authinfo-kludge 's |
| 352 | proxy (or the SSH tunnel) should connect to. |
| 353 | It defaults to the |
| 354 | .I server |
| 355 | name from the section heading |
| 356 | (which must therefore be in the appropriate format). |
| 357 | .TP |
| 358 | .BI sshbind= host\fR[ : port\fR] |
| 359 | Change the address and port number |
| 360 | of the local end of the SSH tunnel |
| 361 | set up by the |
| 362 | .B via |
| 363 | parameter. |
| 364 | The default is to use |
| 365 | 127.1.0.1:1119, |
| 366 | because OpenSSH refuses to try to listen on low-numbered ports |
| 367 | rather than trying it and seeing whether it would work |
| 368 | (which it would, in this case). |
| 369 | It is |
| 370 | .I not |
| 371 | a problem for multiple servers to use the same address: |
| 372 | .B with-authinfo-kludge |
| 373 | uses the |
| 374 | .BR noip (1) |
| 375 | library to keep them |
| 376 | separate. |
| 377 | .TP |
| 378 | .BI via= gateway |
| 379 | Use SSH connection forwarding to reach the server. |
| 380 | The |
| 381 | .I gateway |
| 382 | is passed to |
| 383 | .BR ssh (1) |
| 384 | as its hostname parameter, |
| 385 | so may be a hostname or IP address, |
| 386 | possibly prefixed by |
| 387 | .IB user @ |
| 388 | to choose a different login name; |
| 389 | or it may name a |
| 390 | .BR ssh_config (1) |
| 391 | stanza providing detailed configuration. |
| 392 | Note that the local end of the tunnel will |
| 393 | .I not |
| 394 | be exposed to other users of the local machine, |
| 395 | since this instance of SSH is run under the control of |
| 396 | .BR noip (1). |
| 397 | .PP |
| 398 | The various parameters which take network addresses |
| 399 | accept a common syntax: |
| 400 | .IP |
| 401 | .IR host \c |
| 402 | .RB [ : \c |
| 403 | .IR port ] |
| 404 | .PP |
| 405 | The |
| 406 | .I host |
| 407 | may be a hostname; |
| 408 | an IPv4 address in dotted-quad notation; or |
| 409 | an IPv6 address in hex-and-colons notation, |
| 410 | which must contain at least |
| 411 | .I two |
| 412 | colons to be valid. |
| 413 | Raw IP addresses may be surrounded by square brackets; |
| 414 | this is necessary to disambiguate a trailing |
| 415 | .BI : port |
| 416 | following an IPv6 address because the IPv6 address syntax is stupid. |
| 417 | .PP |
| 418 | The |
| 419 | .B @GLOBAL |
| 420 | section may set the following parameters. |
| 421 | .TP |
| 422 | .BI rundir= dir |
| 423 | Set the runtime directory to be |
| 424 | .IR dir . |
| 425 | This directory (but not its parent directories) |
| 426 | will be created automatically if necessary. |
| 427 | The default runtime directory is chosen in a complicated way; |
| 428 | see below. |
| 429 | .PP |
| 430 | The configuration file is found as follows. |
| 431 | .hP 1. |
| 432 | If server configurations are provided on the command line, |
| 433 | then they are used instead of any configuration file. |
| 434 | .hP 2. |
| 435 | If a |
| 436 | .B \-f |
| 437 | option is given, then it is read as a configuration file. |
| 438 | A fatal error is reported if the file does not exist, |
| 439 | or cannot be read for some other reason. |
| 440 | .hP 3. |
| 441 | Let |
| 442 | .I home |
| 443 | be the value of the environment variable |
| 444 | .BR HOME ; |
| 445 | if this variable is not set, then |
| 446 | .I home |
| 447 | is not defined. |
| 448 | .hP 4. |
| 449 | A `configuration path' is built, as follows. |
| 450 | If the environment variable |
| 451 | .B XDG_CONFIG_HOME |
| 452 | is set, then its value is the first entry in the path; |
| 453 | otherwise the first entry is |
| 454 | .IB home /.config \fR; |
| 455 | a fatal error is reported at this point |
| 456 | if no home directory was determined. |
| 457 | If the environment variable |
| 458 | .B XDG_CONFIG_DIRS |
| 459 | is defined, |
| 460 | then the |
| 461 | .RB ` : '-separated |
| 462 | entries in its value are appended to the path; |
| 463 | otherwise, the single entry |
| 464 | .B /etc/xdg |
| 465 | is appended. |
| 466 | .hP 5. |
| 467 | A `tag' is chosen, as follows. |
| 468 | If the |
| 469 | .B \-t |
| 470 | option is given, then its value is used; |
| 471 | otherwise the tag is the basename of the |
| 472 | .I command |
| 473 | (i.e., the part following the last |
| 474 | .RB ` / ', |
| 475 | if any). |
| 476 | Let |
| 477 | .I tag |
| 478 | denote the tag so chosen. |
| 479 | .hP 6. |
| 480 | A search is made for a file |
| 481 | .IB dir /with-authinfo-kludge/ tag .conf |
| 482 | for each directory |
| 483 | .I dir |
| 484 | in the configuration path established in step 4, |
| 485 | in order. |
| 486 | If such a file exists exists, |
| 487 | then it is read as a configuration file. |
| 488 | (If it can't be read, then a fatal error is reported.) |
| 489 | .hP 7. |
| 490 | A similar search is made for |
| 491 | .IB dir /with-authinfo-kludge/@default.conf \fR. |
| 492 | If such a file exists, |
| 493 | then it is read as a configuration file. |
| 494 | (If it can't be read, then a fatal error is reported.) |
| 495 | .hP 8. |
| 496 | No configuration file could be found, |
| 497 | so a default configuration is constructed, as follows. |
| 498 | Let |
| 499 | .I nntp-server |
| 500 | be the value of the |
| 501 | .B NNTPSERVER |
| 502 | environment variable; |
| 503 | if it is not set, then a fatal error is reported. |
| 504 | The default configuration is as follows. |
| 505 | .RS |
| 506 | .IP |
| 507 | .BI [ nntp-server ] |
| 508 | .RE |
| 509 | . |
| 510 | .SS "The runtime directory" |
| 511 | (This section is technical, and can safely be skipped by most users. |
| 512 | It may be useful to know this stuff if |
| 513 | .B with-authinfo-kludge |
| 514 | is behaving confusingly and you're trying to understand why.) |
| 515 | .PP |
| 516 | The runtime directory is chosen as follows. |
| 517 | .hP 1. |
| 518 | If the |
| 519 | .B \-d |
| 520 | option is present, then its value is used. |
| 521 | Otherwise, if the configuration file specifies |
| 522 | a value for the global |
| 523 | .B rundir |
| 524 | parameter then that it used. |
| 525 | .hP 2. |
| 526 | If the environment variable |
| 527 | .B XDG_RUNTIME_DIR |
| 528 | is set, then let |
| 529 | .I run |
| 530 | denote its value; |
| 531 | then |
| 532 | .IB run /with-authinfo-kludge |
| 533 | is used as the runtime directory. |
| 534 | .hP 3 |
| 535 | If the environment variable |
| 536 | .B TMPDIR |
| 537 | is set, then let |
| 538 | .I tmp |
| 539 | be its value; |
| 540 | otherwise, let |
| 541 | .I tmp |
| 542 | be |
| 543 | .BR /tmp . |
| 544 | Let |
| 545 | .I uid |
| 546 | be the current effective uid, in decimal, |
| 547 | without leading zeroes |
| 548 | (if the superuser is foolish enough to run this program then |
| 549 | .I uid |
| 550 | is |
| 551 | .BR 0 ). |
| 552 | If |
| 553 | .IB tmp/ with-authinfo-kludge- uid |
| 554 | exists, |
| 555 | is a directory (and not a symbolic link), |
| 556 | is owned by the current effective uid, |
| 557 | and has no permissions for group or others; |
| 558 | or if it does not exist but can be created with the above properties; |
| 559 | then it is used as the runtime directory. |
| 560 | .hP 4. |
| 561 | Let |
| 562 | .I home |
| 563 | be the value of the environment variable |
| 564 | .BR HOME ; |
| 565 | if this variable is not set, then |
| 566 | .I home |
| 567 | is not defined. |
| 568 | .hP 5. |
| 569 | A `cache home' directory is determined, as follows. |
| 570 | If the environment variable |
| 571 | .B XDG_CACHE_HOME |
| 572 | is set, then its value is used. |
| 573 | Otherwise, the configuration home is |
| 574 | .IB home /.cache \fR; |
| 575 | a fatal error is reported at this point |
| 576 | if no home directory was determined. |
| 577 | Let |
| 578 | .I cache-home |
| 579 | denote the cache home directory so determined. |
| 580 | If the cache home directory does not exist, |
| 581 | then it is created with mode 0777 (as modified by the umask). |
| 582 | .hP 6. |
| 583 | Let |
| 584 | .I hostname |
| 585 | be the local machine's hostname, |
| 586 | as reported by |
| 587 | .BR gethostname (2). |
| 588 | Then |
| 589 | .IB cache-home /with-authinfo-kludge. hostname |
| 590 | is used as the runtime directory. |
| 591 | .PP |
| 592 | If the directory chosen by the above procedure does not exist, |
| 593 | then it is created as a directory, |
| 594 | with mode 0700 (and modified by the umask). |
| 595 | (If it exists, but is not in fact a directory, |
| 596 | then later operations will fail.) |
| 597 | .PP |
| 598 | The runtime directory contains a number of other directories. |
| 599 | There are a small number of shared directories, |
| 600 | and zero or more |
| 601 | .I session |
| 602 | directories, |
| 603 | each one corresponding to a running |
| 604 | (or failed) |
| 605 | instance of |
| 606 | .BR with-authinfo-kludge . |
| 607 | .PP |
| 608 | The shared directories are as follows. |
| 609 | .TP |
| 610 | .B new/ |
| 611 | This is the `nursery' directory: |
| 612 | new session directories are created and populated in here. |
| 613 | Subdirectories have names of the form |
| 614 | .BI n. time . pid . rand / |
| 615 | where |
| 616 | .I time |
| 617 | is the time |
| 618 | (seconds since the POSIX epoch) |
| 619 | at which the directory was created; |
| 620 | .I pid |
| 621 | is the creator's process id; and |
| 622 | .I rand |
| 623 | is a random number chosen to minimize conflicts. |
| 624 | Directories in the nursery older than 300 seconds |
| 625 | may be deleted. |
| 626 | The creation protocol is to |
| 627 | create a directory with an appropriate name; |
| 628 | create a file within it named |
| 629 | .BR lock ; |
| 630 | take out a |
| 631 | .BR fcntl (2)-style |
| 632 | exclusive lock on this file; |
| 633 | and then move the directory to be a direct child |
| 634 | of the runtime directory. |
| 635 | .TP |
| 636 | .B junk/ |
| 637 | Session and nursery directories are deleted in two stages: |
| 638 | the first stage is to make them be subdirectories of |
| 639 | .BR junk/ . |
| 640 | Once there, any process may delete them. |
| 641 | Note that nursery directories can be junked |
| 642 | even if they're locked: |
| 643 | moving them to |
| 644 | .B junk/ |
| 645 | prevents them from being promoted to proper sessions. |
| 646 | .PP |
| 647 | Session directories are named |
| 648 | .BI s. tag . pid / |
| 649 | where the |
| 650 | .I tag |
| 651 | is the tag summarizing its purpose |
| 652 | (as determined in step 5 of the procedure |
| 653 | for finding a configuration file), and |
| 654 | the |
| 655 | .I pid |
| 656 | is the creator's process-id, |
| 657 | which distinguishes this session from others with the same tag. |
| 658 | .PP |
| 659 | The contents of a session directory are as follows. |
| 660 | .TP |
| 661 | .B client.pid |
| 662 | The process-id of the client command run by |
| 663 | .BR with-authinfo-kludge . |
| 664 | .TP |
| 665 | .B lock |
| 666 | An empty file. |
| 667 | A |
| 668 | running |
| 669 | .B with-authinfo-kludge |
| 670 | process holds a |
| 671 | .BR fcntl (2)-style |
| 672 | lock on this file. |
| 673 | It is used simply to tell other processes that |
| 674 | the directory is still in use and shouldn't be cleaned up. |
| 675 | .TP |
| 676 | .B noip-client/ |
| 677 | A directory containing Unix-domain sockets created by |
| 678 | .BR with-authinfo-kludge ; |
| 679 | the |
| 680 | .B noip |
| 681 | library arranges for the client program |
| 682 | to connect to these Unix-domain sockets |
| 683 | rather than to the real remote NNTP servers. |
| 684 | .TP |
| 685 | .BR noip-ssh. server / |
| 686 | This directory also contains Unix-domain sockets ; |
| 687 | they are created by |
| 688 | .BR ssh (1) |
| 689 | and |
| 690 | .B authinfo-kludge |
| 691 | connects to them, |
| 692 | both under the influence of |
| 693 | .BR noip . |
| 694 | .TP |
| 695 | .BI ssh- server .pid |
| 696 | The process-id of the SSH process started to satisfy a |
| 697 | .B via |
| 698 | server parameter. |
| 699 | . |
| 700 | .\"-------------------------------------------------------------------------- |
| 701 | .SH BUGS |
| 702 | . |
| 703 | The program is probably too complicated for many uses, |
| 704 | but the author finds the various bells and whistles useful. |
| 705 | .PP |
| 706 | There isn't a good way to get two or more NNTP clients |
| 707 | to share the same proxy machinery. |
| 708 | This is somewhat wasteful. |
| 709 | Fixing this would necessitate some other way of |
| 710 | orchestrating the setup and teardown of runtime directories. |
| 711 | . |
| 712 | .\"-------------------------------------------------------------------------- |
| 713 | .SH SEE ALSO |
| 714 | . |
| 715 | .BR authinfo-kludge (1), |
| 716 | .BR noip (1). |
| 717 | .PP |
| 718 | S. Barber, |
| 719 | .IR "RFC2980, Common NNTP Extensions", |
| 720 | .if !t \{\ |
| 721 | .br |
| 722 | \h'5m'\c |
| 723 | .\} |
| 724 | .BR "https://www.ietf.org/rfc/rfc2980.txt" . |
| 725 | . |
| 726 | .SH AUTHOR |
| 727 | Mark Wooding, |
| 728 | <mdw@distorted.org.uk> |
| 729 | . |
| 730 | .\"----- That's all, folks -------------------------------------------------- |