--------------------------------------------------------------------- T H E G A R Y N U M A N D I G E S T (by subscription only - to unsubscribe, see bottom of this message) --------------------------------------------------------------------- (#2001-37) - Topics This Issue: 1) Administrivia 2) test 1 of 4 3) test 2 of 4 4) Boring Filter 5) News on Belgian radio 14.03.01 6) SUBSCRIBE 7) Radio ---------------------------------------------------------------------- Date: Wed, 14 Mar 2001 18:48:13 -0700 From: "Joey Lindstrom" Subject: Administrivia Well, the new server upgrade has been performed. I'm not sure if this will fix the filtering bugs - we'll see, I'm about to perform a couple of tests. I'll start by sending an email with an attachment (very small), and then I'll try sending a very large text message. The filters should, if working, strip the attachment (and allow the accompanying text through) on the first message, and completely block the second message. I'll repeat the test twice, both to numan@garynumanfan.nu and to digest@garynumanfan.nu (the latter being an alias for folks used to using that address with the old server). If any of this stuff passes through, please accept my apologies in advance. :-) / From the desk of Joey Lindstrom / / I filled out an application that said, "In Case Of Emergency Notify". I / wrote "Doctor"... What's my mother going to do? / --Steven Wright ------------------------------ Date: Wed, 14 Mar 2001 18:49:51 -0700 From: "Joey Lindstrom" Subject: test 1 of 4 --_=_=_=IMA.BOUNDARY.GA7UF3138764=_=_=_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit This message contains an attachment, which *SHOULD* be filtered. / From the desk of Joey Lindstrom / / Now some believe that there is an authentic film of an autopsy on one / of the Roswell aliens. I saw the film on FOX. I believe it was / sandwiched between a very special "Martin" and a special "Party of / Five". And I thought the autopsy was as authentic as a piece of total / bullshit can be. By the way, you know what they found at the autopsy? / Traces of OJ's blood. / -- Dennis Miller --_=_=_=IMA.BOUNDARY.GA7UF3138764=_=_=_ Content-Type: image/gif; name="senators-bk.gif" Content-Transfer-Encoding: base64 R0lGODlhMgAoAPcAAP////b29u7u7ubm5t7e3tXV1dXVzc3NzcXFxb29vb20pLS0tLS0rL2snLSs rLSsnKysrLSslKyspL2kc7Skg6yklKSkpKSknKSklKycnLScc6ScnKyce6Sci6ycc5ycnLSUWpyU lJyUi6yUWpSUlJyUe5SUi6SLYpSLi5SLc4uLi5SDg5yDWqSDQYuDg5SDaouDe4ODg4ODe717AJxz e7R7AJx7QZx7OYN7e5x7MXt7e3t7c7RzAINzc6xzAJxzKZRzOaRzCJRzMXtzc6RzAINzWotqc4tq anNzc3NzaqRqAJRqKXtqapRqGJxqAHtqWoNiapRqEHNqYpRqCHNqWntiampqantiYmpqYpRiGJxi AJRiEJRiAItiGJxaEHtaYpxaCItiAHNiQZRaEGpiUnNiOWJiYpRKWoNSWmJiWotaAHNaMXtaGGJa WoNaAHNaKZxKCFpaWntKUoNSEGpaKaRBCINSAGpSQaw5EJxBCItKAHtSAGpSKbQxEFpSUnNSCKQ5 CJRBCINKAHNSAGpSGIs5QXtKEGJSKawxEFJSUoM5SotBALQpEHs5SoNBCHNKAINBAKwpEGpKCO4A KcUYGN4IKWJKGLQgGGpKAIMxQXtBAJQpOWJKELQgEM0QIEpKSoM5COYAKb0YGNUIIHsxOYsxCMUQ GN4AKbQYGGpBAM0IIL0QGGJBCNUAKWJBANUAIMUIIGoxOWo5AFpBAM0AIEFBQYMgMZQYKWI5AMUA IEo5OXsgMVo5AL0AIHMgMVI5AIMYKbQAIJQQIDk5OXsgCFoxAIsQKXsYKawAIJwIGFIxAIMQKaQA IKQAGEoxAIsIIHsQIJwAGDExMUExAIMIIJQAGIsAGEEpAGoQCIMAGDkpACkpKXsAEGoIEHMAEDkg AEEYADEgAGoAECAgIGIAEFoAECkYAFIAEFIACBgYGCAYAEoACEEACCAQADkACBgQABAQEDEACCkA CCkAACAAABAIAAgICBgAAAgIABAAAAgAAAAAAAAAAAAAAAAAAAAAACwAAAAAMgAoAAAI/gD3CRxI sKDBg/vsSUtkpmEthBAjShQozcqLETnm6NED5OHEjxLtxUlxI1AfUa0mTWKUAqRLhJ9KNMGjSqXN SY6svNwp0J4MG4BG3bQ5Csgwni/hicgiauhNUSfsIQUJr4MXoU5t4iHzKVGiT+mmQjRxNevNOk58 KMEkSUyaRFLFDrTyw5PZm4t8uJrm6psrNZyweBSbjkOfuzcdOVFCBNMgc7++hTlkJS5SGWMqIZ4E S1y9ge+mudmjzZWzPzrgEaw17iM8DZcQtzoHUd0jZ9d4/ZGhWqAZJEjgRjTTRbPZYPkItgtnDp/A cEpq/HqHiZWMgfZ0RNs1REecsAZh/tS5i0yfQHy8iNRYz2OWs/VctHEx54pPnIFIbInLZm3XFeBI xDGMNNJwEFtWrSS3zztOrOdgDXs4uMc+zuzhiis79AaPC9UIFM9+2VBjSyaKKGIILGbRtg8+DT64 XoTruSHQHuHMwolOAiERCzkF6SOPO+uwk0ooCA6Uiosx+uCgEgK9o8Y1mOyAHQnUxANRKmZZcx6S Lz64h3P77FFhGUcJNE4Iz8iDkCZm8biPNkjuMQiMPlDQmkDa8NLOIzhS9MEz6xzEZlaB7jOLi27w UEN0RDwAAAkD4eMDJlz0KdA2H+xijZoEYZmViod66aAPEQCwAATg7ROdD5b2NMAK/8BUQ048yWGS klPcCHSNi1y4ooQafAAgAAIHxDBQfJUepIMuMcRgRCHAUANKU071cp6S6zVxgAN/EDGFAACEK0Bv XDjjRKsUQQGLNcc08gUTdxyWFaeh1mBDuBUoCQQB4S5wn6o1sIqQDse4Qw875HgjjiDHCaQPF+sR oUC4LKzHAAAEHKAaPkS4kuxB9qhQjYIC/UKJWdkIVE90NQQhQQEBLFGDo6aGFQ4v7/AJkTQ9VHNP pHDcpeI76tUQxQAYR8FCuABss88j2mCyRpkw9czOQMqcnFUoVu5jTsQyFACAAWyIDYAZ9ajhDCZJ TDQMCbZUs455ehjnVCs/P00EOP78bZLBABuoEBYm5jgjCbogJ+DCGbdkg814ZiXz2TTvDERPNTQA 0Jo2j2CCiRS9TSSNH5kYoYMOfCCSVSV6fGb5OeJ4w4wFXnNxzS+EmPESErcwk83vuETi1CXaCEQP N9V4484997ADjzZuUIfJdS/Z40IynO7zi/A35bGPO9Z4k/dA9WDCi2176JCqS+Og8Aw55lGIB5Eq OVJNN647HA4mbuzvjBs7uBNP0qECOVgjG+I4BzHgoJlQDGIQPiDCHjw3wVSEIxy/4AIh1CeXfQwD CUM4AhrQ8ISgwQJiTlDGl1yxD0yoYw9h+IMUdNdBgsBjG9L4BAgogYcirGEPTjjgghq4EAY1DOIN UrDC+mpIkHRMoBQ3QMIwrGAFLFixIWYYDBMNYo8LBKEFH9giUj6AARP8SywBAQA7 --_=_=_=IMA.BOUNDARY.GA7UF3138764=_=_=_-- ------------------------------ Date: Wed, 14 Mar 2001 18:51:51 -0700 From: "Joey Lindstrom" Subject: test 2 of 4 This message SHOULD be blocked completely because it is 27K in length (max length permitted is 15K) /* REXX */ /* OS/2 WARP REXX script to redial a PPP provider when busy. Written by: Don Russell (c) 1995 send email to drussell@direct.ca Many changes introduced by Ed Tomlinson in version 2.4 Change log: (most recent first) 24 May 1995 Version: 2.4 Support for prompting when used with ppp.exe from the command line (or without slippm.exe). Improvements over 2.3 in dealing with the slippm 1.8h peculiarities. Additional [PPPDIAL_...] keyword support. Support sequences like P[LOGINID] in response file Flush receive buffer before starting dialing added connecting state to dial loop so no chars get sent by pppdial until connect is received only look at modem responses at least 5 chars long added more modem response codes... added Dial Prefix support (you need to save config for changes to take effect.) pause 10 May 1995 Version: 2.3 Fix the redial broken by SLIPPM.EXE V2.0 R1.8h :-( Support CTRL- sequences in response file. Issue OS/2 commands from the response file. Recognize "protocol" as a valid connected response. 23 April 1995 Version: 2.2 Recognize "COMPRESSION" result codes from some modems. (TRON, Supra) Change response file processing to be more flexible. 15 April 1995 Version 2.1 Fix trapping of hung connection (dropped by V2.0 changes) 14 April 1995: Version 2.0 Recognize CARRIER ... response from some 28.8 modems Support multiple phone numbers Get userid/password from dialer Get timing info from modem instead of "hard coded" Support response after login 8 April 1995: Original pause A note about distribution.... This script may be distributed freely provided I am given credit for it. Please do not alter my name or email address nor the manner in which they are displayed. If you have comments regarding this script let me know by email. I'll support it as time permits, and my ability ;-) NOTE: I've tested this as well as I can with a single provider. Given the many providers and configurations, this may not work properly the first time. If you have problems with pppdial, please refer to the readme.txt file. Specific things to watch for are the EXACT prompts used when the host system is asking for a userid and password. The prompts that pppdial expect are "ogin:" (no quotes) and "ssword:" (no quotes) for userid and password respectfully. If your system uses someting different, you will need to use the response file option. (Or modify the script slightly. This is not recommended because you will have to make the same changes in the next version etc. too.) stop-----------------------------------------------------------------*/ RFile = '' UsePhoneNumberFile = 0 signal on halt /* **************************************************************** */ /* YOU MAY NEED TO CHANGE THE FOLLOWING CONFIGURATION VARIABLES. */ /* (OR USE THE RESPONSE FILE OPTION SO YOU WON'T HAVE TO MAKE CHANGES */ /* IN THE NEXT VERSION TOO :-) */ LoginPrompt = 'ogin:' PasswordPrompt = 'ssword:' /* */ /* DO NOT CHANGE ANYTHING AFTER THIS POINT. */ /* (unless you are familiar with REXX and do not use the IBM Dialer) */ /* **************************************************************** */ LoginId = 'userid' Password = 'password' /* */ /* DO NOT CHANGE ANYTHING AFTER THIS POINT. */ /* **************************************************************** */ VersionTag = 'PPPDIAL V2.4' call rxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' call SysLoadFuncs parse upper source . . MyDrivePathName etcDrivePath = translate( value( 'etc',,'OS2ENVIRONMENT') ) iniFile = etcDrivePath || '\TCPOS2.INI' /* before we get too carried away, let's see what we're doing... */ if RxFuncQuery( 'ppp_com_input' ) = 1 then do if RxFuncQuery( 'slip_com_input' ) = 0 then do call lineout ,'This script is for PPP only.' call lineout ,'Your dialer is set for SLIP.' call lineout ,'Change your dialer and try again.' exit 4 end /* Do */ call NotFromDialer exit 0 end /* Do */ parse arg interface , port , . , RFile if RFile \= '' then do if substr(Rfile, 2, 1) \= ':' then do call lineout , 'Response file must have drive and path information.' exit 8 end /* Do */ RFile = stream( RFile, 'C', 'QUERY EXISTS' ) if RFile = '' then do call lineout , 'Response file not found.' call lineout , 'Processing ended.' exit 8 end /* Do */ x = linein( RFile ) if (( x \= 'GO') & (x \= 'WAIT' )) then do call lineout , 'First line of response file must be GO or WAIT.' call lineout , 'Processing ended.' exit 8 end /* Do */ end /* */ /*---------------------------------------------------------------------- ----*/ /* Initialization and Main Script Code */ /*---------------------------------------------------------------------- ----*/ /* Set some definitions for easier COM strings */ bs = '08'x cr='0d'x crlf='0d0a'x remain_buffer = '' UsePhoneNumberFile = 0 UsePhoneNumberList = 0 Service = 'PPP' Disable = 0 UpperCase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' LowerCase = 'abcdefghijklmnopqrstuvwxyz' /* initialize variables that MAY be set by a response file... */ UseDialer = 1 /* yes, we're using the IBM "Dial Other..." */ init1 = '' init2 = '' ModemRegS7 = -1 /* if still < 0 later, we get it from the modem */ MaxAttempts = 32767 pause = 1 /* seconds between dial attempts */ prefix = 'ATDT' /* add any other commands required */ PhoneNumber = 'xxx-xxxx' /* may be a blank delimited list, or file name */ BeepWanted = 1 /* beep when successful connection */ ModemResetCommand = 'ATZ' ModemEscapeSequence = '+++' DialPrefix = '' if RFile \= '' then do if \ProcessRFileCommands() then do say 'Processing ended due to response file error.' exit 8 end /* Do */ end if UseDialer then do /* Get userid/password etc. from the dialer */ ConnectTo = SysIni( iniFile, 'CONNECTION', 'CURRENT_CONNECTION' ) Init1 = Strip( SysIni( iniFile, ConnectTo, 'INIT' ), 'T', '00'x ) Init2 = Strip( SysIni( iniFile, ConnectTo, 'INIT2' ), 'T', '00'x ) Prefix = Strip( SysIni( iniFile, ConnectTo, 'PREFIX' ), 'T', '00'x ) DialPrefix = Strip( SysIni( iniFile, ConnectTo, 'DIAL_PREFIX' ), 'T', '00'x ) PhoneNumber = Strip( SysIni( iniFile, ConnectTo, 'PHONE_NUMBER' ), 'T', '00'x ) LoginId = Strip( SysIni( iniFile, ConnectTo, 'LOGIN_ID' ), 'T', '00'x ) Password = Strip( SysIni( iniFile, ConnectTo, 'PWD' ), 'T', '00'x ) Disable = Strip( SysIni( who, ConnectTo, 'DISABLE' ), 'T', '00'x ) DisableSequence = Strip( SysIni( who, ConnectTo, 'DISABLE_SEQUENCE' ), 'T', '00'x ) Service = Strip( SysIni( who, ConnectTo, 'SERVICE' ), 'T', '00'x ) Disable = ( Disable = 'TRUE' ) end /* Do */ if \datatype( pause, 'N' ) then do call lineout , 'invalid time delay specified - 10 sec assumed' pause = 10 end /* Do */ pause = max( 2, pause ) /* A 2 sec minimum delay is required to guarantee dial tone */ /* The "phone number" may be a list of numbers, or a file spec of a list of numbers. */ if words( PhoneNumber ) > 1 then do /* Yup, it's a list itself... */ UsePhoneNumberList = 1 PhoneNumberList = PhoneNumber PhoneNumberListSize = words( PhoneNumber ) end /* Do */ else do PhoneNumberFile = stream( PhoneNumber, 'C', 'QUERY EXISTS' ) if PhoneNumberFile \= '' then do UsePhoneNumberFile = 1 end /* Do */ else /* it's not a list or a (found) file... */ DialCmd = BuildDialCmd( 0 ) end /* else */ /* Flush any stuff left over from previous COM activity */ call flush_receive call ResetModem /* How long will the modem wait for carrier? */ /* We have to wait a bit longer for a response then... */ /* This value may have been supplied in the response file... */ if ModemRegS7 < 0 then do call lineout , 'Determining modem carrier timeout value...' call send 'ATS7?' || cr x = GetResult( 2 ) parse var x ModemRegS7 '0d'x . if \datatype( ModemRegS7, 'N') then ModemRegS7 = 60 end /* Do */ FirstTime = 1 connecting = 0 count = 0 do forever until count>MaxAttempts connected = 0 hangup = 0 if \connecting then do count = count+1 if (UsePhoneNumberList | UsePhoneNumberFile) then do DialCmd = BuildDialCmd( count ) end /* Do */ if \FirstTime then do call lineout , 'Waiting' pause 'seconds before try' count call lineout , ' 'VersionTag 'by: drussell@direct.ca' call lineout , ' Copyright 1995 Don Russell' call sysSleep pause end /* Do */ FirstTime = 0 call flush_receive 'echo' /* Dial the remote server */ call charout , 'Dialing...' /* Wait for connection */ call send dialcmd || cr end do until \abbrev( ResultCode, 'RINGING' ) /* & length(ResultCode)>5 */ ResultCode = getresult( ModemRegS7 + 10 ) end /* Do until */ /* debugging say c2x(ResultCode) say '"'translate(ResultCode, LowerCase, UpperCase)'"' */ select /* Modem responses that indicate we should redial */ when abbrev( ResultCode, 'BUSY' ) then connecting = 0 when abbrev( ResultCode, 'NO CARRIER' ) then connecting = 0 when abbrev( ResultCode, 'NO ANSWER' ) then connecting = 0 when abbrev( ResultCode, 'NO DIALTONE' ) then connecting = 0 /* Modem responses that indicate we should hangup and redial */ /* My modem supports a &N command that allows me to set the */ /* acceptable connect rate. By setting this at the highest setting */ /* I cause redialing to occur until I get that speed. */ /* when abbrev( ResultCode, 'CONNECT 1200' ) then hangup = 1 */ /* modem responses that indicate we got connected */ when abbrev( ResultCode, 'CONNECT' ) then connected = 1 when abbrev( ResultCode, 'CARRIER' ) then connecting = 1 /* ZOOM */ when abbrev( ResultCode, 'COMPRESSION' ) then connecting = 1 /* TRON, Supra */ when abbrev( ResultCode, 'PROTOCOL' ) then connecting = 1 /* Megahertz */ /* modem responses that indicate we should give up */ when abbrev( ResultCode, 'ERROR' ) then exit 8 when abbrev( ResultCode, 'VOICE' ) then exit 8 when abbrev( ResultCode, 'DIGITAL LINE ERROR' ) then exit 8 otherwise do /* The modem response was not recognized.... */ /* Can I query the serial port to check for DCD? */ /* If DCD is present, then who cares about the response? :-) */ /* code to be developed */ /* DCD is NOT present, and the response was not recognized... */ /* ... so I don't know if the modem is on/off hook here :-( */ call ResetModem end /* otherwise */ end /* select */ if hangup then do call lineout , 'Hanging up due unsatisfactory connection' call ResetModem iterate end /* Do */ if \connected then do iterate end /* I'd like to include a check for a minimum connection data rate */ /* here so that if, due to bad phone lines, we get a poor rate */ /* we hang up and dial again... */ /* code to be developed ... for now add the statements to the select above */ /* or use something like the &N modem command. */ /* OK.. all we've done so far is get the modems connected. */ /* If there is a "response file"... process it, otherwise try */ /* a "reasonable" combination of login and password prompts. */ if RFile \= '' then do call lineout , 'Continuing with response file...' if \ProcessRFile() then do call ResetModem iterate end call lineout , ' ' call lineout , 'Response file completed.' end /* Do */ else do if \ProcessLogin() then do call ResetModem iterate end call lineout , ' ' end /* Do */ leave /* force the end of the loop */ end /* do */ if UsePhoneNumberFile then call lineout PhoneNumberFile /* close the phone number file */ if UseDialer then call lineout , VersionTag '- CONNECT -' /* (start slippm V2.0 R1.8h timer) */ if BeepWanted then do call beep 262, 250 call beep 294, 250 end exit 0 halt: signal off halt if RFile \= '' then call lineout RFile /* close the response file */ if UsePhoneNumberFile then call lineout PhoneNumberFile /* close the phone number file */ call lineout , VersionTag 'cancelled.' exit 4 BuildDialCmd: Parse arg item DialCmd = Prefix If Disable then DialCmd = DialCmd || DisableSequence if DialPrefix \= '' then DialCmd = DialCmd || DialPrefix || ',' /* The phone number may be a group... get the next in the list/file */ select when UsePhoneNumberList then do x = (item // PhoneNumberListSize) + 1 num = word( PhoneNumberList, x ) end /* Do */ when UsePhoneNumberFile then do FileWrapped = 0 do until num \= '' num = linein( PhoneNumberFile ) if num = '' then do if FileWrapped then do call lineout ,'Phone number file appears empty.' exit 8 end /* Do */ call linein PhoneNumberFile, 1, 0 /* re-point to start */ FileWrapped = 1 end /* Do */ end /* Do until */ end /* Do when */ otherwise num = PhoneNumber end /* select */ DialCmd = DialCmd || num return DialCmd ProcessLogin: success = 1 /* we'll assume it works... */ call waitfor LoginPrompt, 30 if result = 1 then do call lineout , 'Host is not asking for userid.' success = 0 end /* Do */ else do call send loginId || cr call waitfor PasswordPrompt, 30 if result = 1 then do call lineout , 'Host is not asking for password.' success = 0 end /* Do */ call send password || cr end /* do */ return success ProcessRFile: RFileProcessed = 1 /* we'll assume success :-) */ call linein RFile, 1, 0 /* repoint the file to the beginning */ x = linein( RFile ) select when x = 'GO' then ResponseToggle = 1 when x = 'WAIT' then ResponseToggle = 0 end /* select */ do while lines( RFile ) & RFileProcessed x = linein( RFile ) if x = '' then /* ignore blank lines */ iterate if abbrev( x, '[PPPDIAL_' ) then /* ignore parm settings */ iterate if abbrev( x, '[OS/2]' ) then do parse var x ']'os2Command address CMD os2Command iterate end /* Do */ if ResponseToggle then do /* we are sending to the host... */ parse var x x1 '[' x2 ']' x3 select when x2 = 'LOGINID' then call send x1 || LoginId || x3 || cr when x2 = 'PASSWORD' then call send x1 || Password || x3 || cr when x2 = 'KEYBOARD' then do call beep 2000, 125 /* get attention for prompt */ parse pull TheAnswer call send x1 || TheAnswer || x3 || cr end /* Do */ when x2 = 'KEYBOARD_NOECHO' then do call beep 2000, 125 /* get attention for prompt */ TheAnswer = '' do until char = cr /* wait for cr */ char = SysGetKey( 'NOECHO' ) if char = bs then do if TheAnswer = '' then call beep 2000, 125 else do call charout , '082008'x /* bs blank and bs */ TheAnswer = delstr( TheAnswer, length( TheAnswer) ) end /* Do */ end /* Do */ else do if char = cr then call charout , crlf else do TheAnswer = TheAnswer || char call charout , '*' end /* Do */ end /* Do */ end /* Do */ call send x1 || TheAnswer || x3 || cr end /* Do */ when abbrev( x, '[REPEAT]' ) then do parse var x ']' y z k /* get string to send, string to wait for and count */ if k = '' then k = 1000 /* repeat lots if not told otherwise */ MatchFound = 0 do k until MatchFound /* successful match */ select when pos( '^', y ) \= 0 then call send CtrlSequence( y ) when y = '\r' then call send cr otherwise call send y || cr end /* select */ if waitfor( z , 5 ) = 0 then do /* successful match */ MatchFound = 1 end /* Do */ end /* until */ if \MatchFound then do /* retry count exhausted, no match found */ RFileProcessed = 0 /* we encountered a problem... */ end /* Do */ else do /* The string was repeated and we got the expected match... */ /* I change the toggle so that it will be set to "send" again for */ /* the next line in the response file. */ ResponseToggle = \ResponseToggle end /* Do */ end /* when [REPEAT] */ when pos( '^', x) \= 0 then call send CtrlSequence( x ) when x = '\r' then call send cr otherwise call send x || cr end /* select */ end else do if waitfor( x, 20 ) = 1 then do call lineout , 'Host not responding' RFileProcessed = 0 /* terminate processing and dial again :-( */ end /* Do */ end /* Do */ ResponseToggle = \ResponseToggle end /* While */ call lineout RFile /* close the file */ return RFileProcessed ProcessRFileCommands: success = 1 /* assume all is OK */ do while lines( RFile ) x = linein( RFile ) if x = '' then /* ignore blank lines */ iterate if \abbrev( x, '[PPPDIAL_' ) then iterate parse var x '_'kw']'val val = strip( val, 'B') select when kw = 'CARRIER_TIMEOUT' then ModemRegS7 = val when kw = 'DELAY' then pause = val when kw = 'DIAL_PREFIX' then DialPrefix = val when kw = 'DO_NOT_USE_DIALER' then UseDialer = 0 when kw = 'INIT1' then init1 = val when kw = 'INIT2' then init2 = val when kw = 'MAX_REDIAL' then MaxAttempts = val when kw = 'MODEM_ESCAPE' then ModemEscapeSequence = val when kw = 'MODEM_RESET' then ModemResetCommand = val when kw = 'PHONE' then PhoneNumber = val when kw = 'PREFIX' then Prefix = val when kw = 'QUIET' then BeepWanted = 0 when kw = 'REM' then nop /* allow comments... */ when kw = 'USE_DIALER' then UseDialer = 1 otherwise do call lineout , kw 'is not a recognized keyword.' success = 0 end /* otherwise */ end /* select */ end /* while */ return success CtrlSequence: parse arg string /* we do a logical AND X'1F' with the character... */ /* The "character" should only be in the range of 40 through 5F, */ /* but who cares... the effect will be the same :-) */ do until x = 0 x = pos( '^', string ) if x \= 0 then do y = substr( string, x+1, 1) /* isolate the character following ^ */ string = insert( bitand( y, '1F'x ), string, x+1 ) /* delete the character pair from the string */ string = delstr( string, x, 2 ) end /* Do */ end return string ResetModem: call lineout , 'Initializing modem...' if init1 \= '' then do call send init1 || cr ResultCode = GetResult( 6 ) end /* Do */ if init2 \= '' then do call send init2 || cr ResultCode = GetResult( 6 ) end /* Do */ if ((init1 = '') & (init2 = '')) then do call send ModemResetCommand || cr ResultCode = GetResult( 6 ) end /* Do */ if left(ResultCode , 2) \= 'OK' then do call lineout , 'Modem not resetting... Trying again' call sysSleep 2 call send ModemEscapeSequence call waitfor crlf, 5 call send ModemResetCommand || cr call getresult 3 end /* Do */ call flush_receive 'echo' return /* Routine to send a modem command. */ send: parse arg AtCmd call flush_receive call ppp_com_output interface , AtCmd return /* Waits for any modem response, and returns the string. */ /* If timeout is specified, it says how long to wait if data stops showing */ /* up on the COM port (in seconds). */ getresult: parse arg timeout call waitfor crlf, timeout if result = 0 then call waitfor crlf, timeout if result = 1 then /* timed out */ return '*timedout*' else ret waitfor_buffer /*---------------------------------------------------------------------- ----*/ /* waitfor ( waitstring , [timeout] ) */ /* */ /* Waits for a specific string from the modem. */ /* Timeout is specified in seconds. */ waitfor: parse arg waitstring , timeout if timeout = '' then do timeout = 90 /* 1.5 minutes if delay not specified */ end waitfor_buffer = '' found = 0 expired = 0 call time 'E' do until (found | expired) chars = ppp_com_input( interface, , 10 ) remain_buffer = remain_buffer || chars index = pos(waitstring, remain_buffer) found = ( index > 0 ) expired = (time('E') > timeout) if found then do x = index + length(waitstring) waitfor_buffer = delstr(remain_buffer, x) /* everything up to what matched */ remain_buffer = substr(remain_buffer, x) /* keep everything past that */ end /* SLIPPM.EXE V2.0 R1.8h aborts our script when it "sees" certain words in the */ /* status window. Words like "BUSY", "NO CARRIER", etc. */ /* To get around this problem I translate all information from the modem */ /* to lower case, thus thwarting slippm's effort to detect what's going on. :-) */ /* However, I don't know how long this will continue to work, because IBM is */ /* developing slippm and who knows what they have in mind for the next version? */ call charout , translate(chars, LowerCase, UpperCase) end retu \found /*---------------------------------------------------------------------- ----*/ /* flush_receive() */ /* */ /* Routine to flush any pending characters to be read from the COM port. */ /* Reads everything it can until nothing new shows up for 100ms, at which */ /* point it returns. */ /* */ /*---------------------------------------------------------------------- ----*/ flush_receive: parse arg echo /* If echoing the flush - take care of waitfor remaining buffer */ /* Note - I translate the characters here to lower case to be consistent */ /* with the "waitfor" routine. (Due to slippm.exe V2.0 R1.8h changes) */ if (echo \= '') & (length(remain_buffer) > 0) then do call charout , translate( remain_buffer, LowerCase, UpperCase ) remain_buffer = '' end /* Read anything left in the modem or COM buffers */ /* Stop when nothing new appears for 100ms. */ do until line = '' line = ppp_com_input(interface,,100) if echo \= '' then call charout , translate( line, LowerCase, UpperCase ) end return NotFromDialer: parse upper source . . MyDrivePathName MyDrive = filespec( 'D', MyDrivePathName ) MyPath = filespec( 'P', MyDrivePathName ) MyDrivePath = MyDrive || MyPath etcDrivePath = translate( value( 'etc',,'OS2ENVIRONMENT') ) binDrive = filespec( 'D', etcDrivePath ) binPath = filespec( 'P', etcDrivePath ) || 'BIN\' binDrivePath = binDrive || binPath EraseFile = 0 if binDrivePath \= MyDrivePath then do say 'This script will be moved to' binDrivePath say 'Do you wish to continue? (y/n)' say '(Saying no will still show help)' answer = translate( sysGetKey( 'ECHO' ) ) if answer = 'Y' then do 'COPY' MyDrivePathName binDrivePath if rc = 0 then do say MyDrivePathName 'will be erased after displaying help' EraseFile = 1 end '@PAUSE' call sysCls end /* Do */ end /* Do */ call sysCls stop = 0 do i = 3 by 1 until stop x = sourceline( i ) if left( x, 5 ) = 'pause' then do '@PAUSE' call sysCls iterate end /* Do */ if left( x, 4 ) \= 'stop' then say x else stop = 1 end /* do */ '@PAUSE' if EraseFile then 'ERASE' MyDrivePathName return / From the desk of Joey Lindstrom / / "I think the ear prefers variety, unless you happen to be one of those / mongoloids who thinks that the drum machine is the greatest device known / to mankind." / --Frank Zappa ------------------------------ Date: Wed, 14 Mar 2001 20:47:11 -0500 From: "Tim" Subject: Boring Filter From last digest: >Hey Joey, > >Can you chuck in a Boring Filter while you're at it? > >Tik-Tok Man >Moscow All I have to say is about filtering boring dribble is --,,......-,,,.....-,,,.......,,,,,,---,. Tim ------------------------------ Date: Thu, 15 Mar 2001 09:57:19 +0100 From: luc.de_visscher@ch.Novartis.com Subject: News on Belgian radio 14.03.01 Yesterday, the Belgian radio confirmed that Billy Corgan and Gary would be working together and record a single soon. Also, the link was mentioned between Gary, Marilyn Manson & Trent Reznor. But, I couldn't jind any info on NuWorld or AFE. So, is it, or is it not confirmed? Greetings, Luc De Visscher The Numan Factor BELGIUM ------------------------------ Date: Thu, 15 Mar 2001 09:05:29 From: "ian blair" Subject: SUBSCRIBE Joey - Could you change my e-mail address from VALERIUN5@hotmail.com to me NEW address which is IanJamesBlair@hotmail.com ??? I'm happy to unsub then sub again if that's the way? Cheers - and as usual - congrats on your sterling efforts my friend! P.S - love the new format! Cheers, - Ian _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. ------------------------------ Date: Thu, 15 Mar 2001 10:04:44 From: "William Wilson" Subject: Radio Hi! all, Tim,yeah but D.J.'s couldv'e played Numan IF THE WANTED TOO,but not with "pump it up",a down right ban,must have been too outrageous for there banal brains!! Hey Pete, wouldn't a boring filter mean we wouldn't hear from you so much???,only kidding mate...how's Moscow?? Cheers William Wilson (Glasgow Crazie!) _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com ------------------------------ End numan@garynumanfan.nu Digest [03/15/2001 18:01] --------------------------------------------------- ------------------------------------------------------------------- T H E G A R Y N U M A N D I G E S T is produced, moderated, and distributed by Derek Langsford, Dave Datta, and Joey Lindstrom dlangs@sunstroke.sdsu.edu, datta@cs.uwp.edu, Joey@GaryNumanFan.NU ------------------------------------------------------------------- To reply to the messages in this list, email: numan@GaryNumanFan.NU If you want to be removed, or someone wants to be added, email: listserv@GaryNumanFan.NU and include this line as the first line of your message body: SUBSCRIBE numan@garynumanfan.nu (email address) or UNSUBSCRIBE numan@garynumanfan.nu (email address) (email address is optional but useful if you have multiple addresses) If you want to switch between receiving Digests or individual posts, again send to listserv@GaryNumanFan.NU and include either of these in your message body: NORMAL numan@garynumanfan.nu or DIGEST numan@garynumanfan.nu ------------------------------------------------------------------ Please note: this mailing list is configured to automatically unsubscribe you if mail to your mailbox goes undeliverable for any reason. If you suddenly stop receiving this list, you should assume you've been automatically unsubscribed and should then manually resubscribe. ------------------------------------------------------------------ The Gary Numan Digest is brought to you via Joey Lindstrom and the GaryNUmanFan server (Joey@GaryNumanFan.NU) All of the opinions in this digest belong to the respective authors and do not necessarily agree with those of the Digest Producers. --------------------------------------------------------------------------