$ od -c -N 50000 [Indigo]<Mesa>Doc>Pup>Pup2.bravo!1
0000000 P r i v a t e D a t a S t a
0000020 m p : N o X : 6 . 5 "
0000040 Y : 1 1 . 2 5 " \r P a g e N u
0000060 m b e r s : Y e s X : 5 2
0000100 7 Y : - . 5 " F i r s t
0000120 P a g e : 8 \r H e a d i n g :
0000140 032 q ( 6 3 5 ) \ b \r M e s a P
0000160 u p P a c k a g e F u n c t
0000200 i o n a l S p e c i f i c a t
0000220 i o n 032 y 7 5 6 q \ b \r B y t e
0000240 S t r e a m i n t e r f a c
0000260 e 032 x 4 e 3 0 \ b \r T h e P u
0000300 p P a c k a g e B y t e S t
0000320 r e a m ( B S P ) i m p l e
0000340 m e n t a t i o n u s e s a
0000360 S t r e a m i n t e r f a c
0000400 e t h a t i s d i f f e r
0000420 e n t f r o m t h e n o r
0000440 m a l M e s a o n e d e f
0000460 i n e d i n S t r e a m D e
0000500 f s . S e e a p p e n d i
0000520 x A f o r a d e t a i l
0000540 e d d e s c r i p t i o n .
0000560 T h i s s e c t i o n o n
0000600 l y d i s c u s s e s t h e
0000620 p e c u l i a r i t i e s o
0000640 f P u p B y t e S t r e a m
0000660 s . 032 x 4 e 1 2 j k 5 4 \r P u p
0000700 B y t e S t r e a m C r e a t e
0000720 : P R O C E D U R E [ \r r e
0000740 m o t e : P u p A d d r e s s
0000760 , \r t i c k s : T o c k s ] \r
0001000 R E T U R N S [ S t r e a m .
0001020 H a n d l e ] ; 032 l 4 6 4 0 d 4
0001040 2 6 8 x 4 e 1 2 k 5 4 \ f 6 b 2
0001060 0 f 7 1 0 f 6 3 7 f 7 7 f
0001100 6 \r T o c k s : T Y P E =
0001120 R E C O R D [ C A R D I N A L
0001140 ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4 k
0001160 5 4 \ f 6 b 6 f 7 1 4 f 6 2
0001200 f 7 8 f 6 \r S t r e a m C l o
0001220 s i n g : E R R O R [ w h y
0001240 : C l o s e R e a s o n , t
0001260 e x t : S T R I N G ] ; 032 l 4
0001300 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6
0001320 b 1 4 f 7 6 f 6 2 6 f 7 6
0001340 f 6 \r C l o s e R e a s o n :
0001360 T Y P E = { \r l o c a l C l
0001400 o s e , r e m o t e C l o s e
0001420 , \r n o R o u t e T o N e t w o
0001440 r k , t r a n s m i s s i o n
0001460 T i m e o u t , r e m o t e R
0001500 e j e c t } ; 032 l 4 6 4 0 d 4 2
0001520 6 8 x 4 k 5 4 \ f 6 b 1 2 f 7
0001540 5 f 6 \r P u p B y t e S t r e a
0001560 m C r e a t e i s u s e d
0001600 t o c r e a t e a u s e r
0001620 e n d o f a c o n n e c
0001640 t i o n . I t b u i l d s
0001660 t h e n e c e s s a r y d
0001700 a t a s t r u c t u r e s a
0001720 n d t r i e s t o o p e n
0001740 a c o n n e c t i o n t o
0001760 t h e s p e c i f i e d r
0002000 e m o t e a d d r e s s .
0002020 S t r e a m C l o s i n g w i
0002040 l l r e s u l t i f i t
0002060 c a n n o t b e o p e n e
0002100 d i n a r e a s o n a b l
0002120 e l e n g t h o f t i m e
0002140 . 032 x 4 e 1 2 j k 5 4 \ f 6 b 1
0002160 9 f 0 B 1 5 3 f 6 b 1 3 f 0 B \r
0002200 I f t h e c o n n e c t i o
0002220 n g e t s i n t o t r o u
0002240 b l e f o r a n y r e a s
0002260 o n , i t i s s m a s h e
0002300 d c l o s e d , a n d a n
0002320 y p r o c e s s t h a t t
0002340 r i e s t o d o a g e t
0002360 o r p u t o n t h e s
0002400 t r e a m w i l l r u n i
0002420 n t o t h e S t r e a m C l
0002440 o s i n g E R R O R . t e
0002460 x t i s l i k e l y t o
0002500 b e N I L . I f n o t ,
0002520 i t i s t h e t e x t
0002540 p o r t i o n o f t h e e
0002560 r r o r o r a b o r t P u
0002600 p p r o v i d e d b y t h
0002620 e r e m o t e e n d . l
0002640 o c a l C l o s e m e a n s
0002660 t h a t t h e s t r e a m
0002700 i s i n t h e p r o c e s
0002720 s o f b e i n g d e l e t
0002740 e d . I f y o u e v e r
0002760 g e t t h i s , y o u a
0003000 r e i n t r o u b l e b e
0003020 c a u s e y o u s h o u l d
0003040 n o t h a v e a n y p r
0003060 o c e s s e s u s i n g a
0003100 s t r e a m w h e n y o u
0003120 d e l e t e i t . r e m o
0003140 t e C l o s e m e a n s t h
0003160 a t t h e c o n n e c t i o
0003200 n w a s c l o s e d b y
0003220 t h e r e m o t e m a c h i
0003240 n e . T h e o t h e r t
0003260 h r e e r e a s o n s c a n
0003300 a l s o h a p p e n d u r
0003320 i n g P u p B y t e S t r e a
0003340 m C r e a t e . n o R o u t
0003360 e T o N e t w o r k m e a n s
0003400 t h a t t h e p u p r o
0003420 u t e r d o e s n o t k n
0003440 o w ( a n y l o n g e r )
0003460 h o w t o g e t p a c k e
0003500 t s t o t h e r e m o t e
0003520 m a c h i n e . C u r r e
0003540 n t l y i t i s n ' t g e
0003560 n e r a t e d , b u t w i l
0003600 l p r o b a b l y r e a p p
0003620 e a r i n t h e f u t u r
0003640 e . T h e r e a r e p r
0003660 o b l e m s w i t h t r a n
0003700 s i e n t s i n t h e r o
0003720 u t i n g t a b l e s . t
0003740 r a n s m i s s i o n T i m e o
0003760 u t m e a n s t h a t t h
0004000 e r e m o t e m a c h i n e
0004020 h a s n o t r e s p o n d
0004040 e d w i t h i n a r e a s
0004060 o n a b l e a m o u n t o f
0004100 t i m e . M a y b e i t
0004120 h a s c r a s h e d , o r
0004140 i f d u r i n g P u p B y
0004160 t e S t r e a m C r e a t e ,
0004200 m a y b e i t i s n o t
0004220 l i s t e n i n g t o t h e
0004240 E t h e r n e t . r e m o
0004260 t e R e j e c t m e a n s t
0004300 h a t t h e r e m o t e m
0004320 a c h i n e h a s e x p l i
0004340 c i t l y r e j e c t e d t
0004360 h e c o n n e c t i o n o r
0004400 c o n n e c t i o n r e q u
0004420 e s t . T h i s f r e q u
0004440 e n t l y h a p p e n s i f
0004460 t h e r e m o t e m a c h
0004500 i n e h a s b e e n r e b
0004520 o o t e d . 032 x 4 e 1 2 j k 5 4
0004540 \ 1 5 2 f 6 b 1 3 f 0 B 1 f 7 b
0004560 5 f 0 B 3 f 6 b 4 f 0 B 1 7 f 7
0004600 b 3 f 0 B 8 9 f 6 b 1 0 f 0 B 1
0004620 7 9 f 6 b 1 1 f 0 B 1 0 9 f 6 b
0004640 1 9 f 0 B 3 f 6 b 1 6 f 0 B 9 7
0004660 f 1 1 3 0 f 0 2 f 6 b 1 9 f
0004700 0 B 1 2 1 f 6 b 1 9 f 0 B 4 6 f
0004720 6 b 1 2 f 0 B \r I f t h e r
0004740 e m o t e e n d h a s r e
0004760 q u e s t e d a n a c k ,
0005000 t h e P u p P a c k a g e n
0005020 o r m a l l y d e f e r s s
0005040 e n d i n g i t u n t i l
0005060 t h e r e c e i v i n g p r
0005100 o c e s s s u c k s u p a
0005120 l l t h e d a t a f r o m
0005140 t h e b u f f e r . ( I
0005160 f i t a s k s a g a i n ,
0005200 i t w i l l g e t a p
0005220 r o m p t r e p l y . W e
0005240 l l , i t w a s s u p p o
0005260 s e d t o , b u t d u e
0005300 t o a b u g . . . ) I f
0005320 t h e s e n d e r i s s
0005340 l i g h t l y f a s t e r t
0005360 h a n t h e r e c e i v e r
0005400 , t h i s s l i g h t d e
0005420 l a y g r e a t l y i m p r
0005440 o v e s t h r o u g h p u t
0005460 b y k e e p i n g t h e a
0005500 l l o c a t i o n w i n d o w
0005520 a s l a r g e a s p o s
0005540 s i b l e , a n d h e n c e
0005560 m i n i m i z i n g t h e
0005600 n u m b e r o f a c k p a
0005620 c k e t s t h a t n e e d
0005640 t o b e g e n e r a t e d
0005660 a n d p r o c e s s e d . 032 x
0005700 4 e 1 2 j k 5 4 \ 1 9 6 f 1 4
0005720 7 f 0 \r I n a d d i t i o n
0005740 t o s e n d i n g t h e c
0005760 u r r e n t b u f f e r , S
0006000 e n d N o w a l s o r e q u
0006020 e s t s t h a t i t b e
0006040 a c k n o w l e d g e d . I
0006060 t w i l l s e n d a n e
0006100 m p t y p a c k e t i f n
0006120 e c e s s a r y . T h i s
0006140 a l l o w s a b u l k d a
0006160 t a t r a n s f e r o p e r
0006200 a t i o n ( F T P ) t o c
0006220 o o r i d i n a t e i t ' s
0006240 ( d i s k ) a c t i v i t y
0006260 w i t h t h e ( d i s k )
0006300 a c t i v i t y o f t h e
0006320 p r o c e s s a t t h e o
0006340 t h e r e n d . C o n s i
0006360 d e r t h e c a s e w h e
0006400 r e t h e s e n d e r a n
0006420 d r e c e i v e r u s e t
0006440 h e s a m e s i z e b u f
0006460 f e r s , a n d t h e P u
0006500 p b u f f e r s a r e s l
0006520 i g h t l y l a r g e r t h
0006540 a n t h e c l i e n t b u
0006560 f f e r s . A s s u m e t
0006600 h a t i t t a k e s b o t
0006620 h e n d s r o u g h l y t
0006640 h e s a m e a m o u n t o
0006660 f t i m e t o g e n e r a
0006700 t e a n d c o n s u m e t
0006720 h e d a t a . W i t h o u
0006740 t t h e S e n d N o w , t
0006760 h e t a i l o f t h e c
0007000 l u m p s i t s i n t h e
0007020 s e n d e r s b u f f e r s
0007040 w h i l e t h e s e n d e
0007060 r i s f e t c h i n g t h
0007100 e s e c o n d c l u m p ,
0007120 a n d t h e r e c e i v e r
0007140 w a i t s . E a r l y i
0007160 n s e n d i n g t h e s e
0007200 c o n d c l u m p , t h e
0007220 a l l o c a t i o n l i m i t
0007240 w i l l b e r e a c h e d
0007260 , a n d t h e s e n d e r
0007300 m u s t w a i t f o r t
0007320 h e r e c e i v e r t o p
0007340 r o c e s s t h e f i r s t
0007360 c l u m p b e f o r e t h
0007400 e r e c e i v e r a s k s
0007420 f o r m o r e d a t a t o
0007440 t r i g g e r s e n d i n g
0007460 t h e a c k . S e n d N
0007500 o w p r o v i d e s a w a
0007520 y t o k e e p t h i n g s
0007540 s y n c h r o n i z e d .
0007560 T h e r e s u l t i s t h
0007600 a t t h e s e n d e r a n
0007620 d r e c e i v e r g e t t
0007640 o o v e r l a p t h e ( d
0007660 i s k ) p r o c e s s i n g
0007700 o f t h e d a t a . T h
0007720 e c u r r e n t i m p l e m
0007740 e n t a t i o n w a i t s i
0007760 n S e n d N o w f o r t h
0010000 e a c k t o a r r i v e .
0010020 U n l e s s t h e r e c
0010040 e i v i n g p r o c e s s a
0010060 t t h e r e m o t e e n d
0010100 h a s f a l l e n b e h i
0010120 n d , t h i s i s o n l y
0010140 a s h o r t t i m e .
0010160 I n p a r t i c u l a r , i
0010200 t i s m u c h s m a l l e
0010220 r t h a t t h e t i m e
0010240 n e c e s s a r y t o w r i
0010260 t e s e v e r a l p a g e s
0010300 o n t h e d i s k . 032 x 4
0010320 e 1 2 j k 5 4 \ 4 3 f 6 b 7 f 0
0010340 B 4 1 f 1 4 2 f 0 3 9 7 f 6
0010360 b 7 f 0 B 3 3 4 f 6 b 7 f 0 B 1
0010400 4 0 f 1 3 6 f 7 b 7 f 1 B 2 1
0010420 2 f 0 \r D e l e t e d i s c a
0010440 r d s a n y p a r t i a l
0010460 b u f f e r , i f a n y ,
0010500 t h a t h a s n o t y e t
0010520 b e e n s e n t . T h i
0010540 s a v o i d s b u m p i n g
0010560 i n t o S t r e a m C l o s
0010600 i n g a g a i n i f y o u
0010620 a r e c l e a n i n g u p
0010640 t h e c o n n e c t i o n
0010660 a f t e r t h e r e m o t e
0010700 e n d h a s c r a s h e d
0010720 . I f y o u w a n t t
0010740 o s e n d t h e d a t a
0010760 t h a t m i g h t b e b u
0011000 f f e r e d , b e s u r e
0011020 t o c a l l S e n d N o w .
0011040 032 x 4 e 1 2 j k 5 4 \ f 6 b 6 f
0011060 0 B 9 2 f 6 b 1 3 f 0 B 1 4 9 f
0011100 6 b 7 f 0 B \r W h e n y o u
0011120 d e l e t e a s t r e a m ,
0011140 b e s u r e t h a t y o
0011160 u d o n ' t h a v e a n y
0011200 o t h e r P R O C E S S e s
0011220 u s i n g i t o r t h e
0011240 r u g w i l l g e t y a
0011260 n k e d o u t f r o m u n
0011300 d e r n e a t h t h e m . 032 x
0011320 4 e 1 2 j k 5 4 \ 6 4 f 7 b 7 f
0011340 0 B \r C r e a t i n g a l i
0011360 s t e n e r t e l l s t h e
0011400 P u p P a c k a g e t h a
0011420 t t h e c l i e n t p r o
0011440 g r a m w i l l a c c e p t
0011460 R F C s f o r t h e l o
0011500 c a l s o c k e t n u m b e
0011520 r ( t h e P u p P a c k a
0011540 g e k n o w s t h e h o s
0011560 t a n d n e t w o r k ) .
0011600 A l i s t e n e r a l s o
0011620 a n s w e r s e c h o p u
0011640 p s i f y o u w a n t a
0011660 p o l i t e w a y t o d
0011700 i s c o v e r i f i t i s
0011720 a l i v e . 032 x 4 e 1 2 j k 5
0011740 4 \ 1 5 6 f 1 8 8 f 0 \r C r e
0011760 a t e P u p B y t e S t r e a m
0012000 L i s t e n e r : P R O C E D
0012020 U R E [ \r l o c a l : P u p
0012040 S o c k e t I D , \r p r o c :
0012060 P R O C E D U R E [ S t r e a
0012100 m . H a n d l e , P u p A d d
0012120 r e s s ] , \r t i c k s : T o
0012140 c k s , \r f i l t e r : P R O
0012160 C E D U R E [ P u p A d d r e
0012200 s s ] _ D o n t R e j e c t
0012220 ] \r R E T U R N S [ P u p L i
0012240 s t e n e r ] ; 032 l 4 6 4 0 d 4
0012260 2 6 8 x 4 e 1 2 k 5 4 \ f 6 b 2
0012300 8 f 7 1 0 f 6 2 9 f 7 9 f
0012320 6 5 2 f 7 9 f 6 2 8 f 7
0012340 7 f 6 \r T o c k s : T Y P E
0012360 = R E C O R D [ C A R D I N
0012400 A L ] ; 032 l 4 6 4 0 d 4 2 6 8 x
0012420 4 k 5 4 \ f 6 b 6 f 7 1 4 f 6
0012440 2 f 7 8 f 6 \r D e s t r o y
0012460 P u p L i s t e n e r : P R O
0012500 C E D U R E [ P u p L i s t e
0012520 n e r ] ; 032 l 4 6 4 0 d 4 2 6 8
0012540 x 4 k 5 4 \ f 6 b 1 9 f 7 1 0
0012560 f 6 \r P u p L i s t e n e r :
0012600 T Y P E = . . . ; 032 l 4 6
0012620 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6 b
0012640 1 3 f 7 4 f 6 \r D o n t R e j
0012660 e c t : P R O C E D U R E [
0012700 P u p A d d r e s s ] ; 032 l 4 6
0012720 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6 b
0012740 1 2 f 7 9 f 6 \r R e j e c t T
0012760 h i s R e q u e s t : E R R O
0013000 R [ e r r o r : S T R I N G
0013020 ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4 k
0013040 5 4 \ f 6 b 1 9 f 7 5 f 6 9
0013060 f 7 6 f 6 \r C r e a t e P u p
0013100 B y t e S t r e a m L i s t e n
0013120 e r m a k e s a B y t e S
0013140 t r e a m l i s t e n e r .
0013160 l o c a l i s t h e l o
0013200 c a l s o c k e t n u m b e
0013220 r t o l i s t e n o n .
0013240 T o s t o p l i s t e n i
0013260 n g , c a l l D e s t r o y
0013300 P u p L i s t e n e r . 032 x 4 e
0013320 1 2 j k 5 4 \ f 6 b 2 7 f 0 B 2
0013340 0 i 8 I 3 f 6 b 5 f 0 B 4 1 b 2
0013360 B 2 4 f 6 b 1 8 f 0 B \r T h e
0013400 u s e r s u p p l i e d p r
0013420 o c e d u r e w i l l b e
0013440 F O R K e d t o o n c e f
0013460 o r e a c h c o n n e c t i
0013500 o n t h a t i s s e t u p
0013520 w i t h t h e l o c a l
0013540 s o c k e t n u m b e r .
0013560 ( T h e n e w P R O C E S S
0013600 g e t s D e t a c h e d . )
0013620 T h e c l i e n t i s
0013640 e x p e c t e d t o d e l e
0013660 t e t h e c o n n e c t i o
0013700 n e v e n t u a l l y . T
0013720 h e P u p A d d r e s s p a
0013740 s s e d t o p r o c i s
0013760 t h e a d d r e s s o f t
0014000 h e o t h e r e n d o f
0014020 t h e c o n n e c t i o n .
0014040 t i c k s i s t h e t i
0014060 m e o u t i n t e r v a l f
0014100 o r g e t a n d p u t u
0014120 s e d f o r a n y s t r e
0014140 a m s t h a t g e t c r e
0014160 a t e d b y t h e l i s t
0014200 e n e r . 032 x 4 e 1 2 j k 5 4 \
0014220 3 6 f 7 b 4 f 0 B 8 5 f 7 b 7 f
0014240 0 B 6 f 6 b 6 f 0 B 6 7 f 6 4
0014260 b 1 0 f 0 B 1 1 f 6 b 4 f 0 B 5
0014300 3 f 6 b 5 f 0 B \r O p t i o n a
0014320 l l y , y o u c a n s u p
0014340 p l y a p r o c e d u r e
0014360 t h a t m a y r e j e c t
0014400 u n d e s i r e d c o n n e c
0014420 t i o n s . T h i s i s
0014440 u s e f u l t o k e e p a
0014460 s e r v e r f r o m c r a
0014500 s h i n g b e c a u s e i t
0014520 r u n s o u t o f r e s
0014540 o u r c e s . ( T h e d e
0014560 f a u l t d o e s n ' t r e
0014600 j e c t a n y t h i n g . )
0014620 T o r e j e c t a c o n
0014640 n e c t i o n , t h e f i l
0014660 t e r p r o c e d u r e s h
0014700 o u l d r a i s e t h e E
0014720 R R O R R e j e c t T h i s R
0014740 e q u e s t . T h e t e x
0014760 t w i l l b e s e n t b
0015000 a c k t o t h e o t h e r
0015020 e n d i n a n a b o r t
0015040 P u p . I f t h e f i
0015060 l t e r p r o c e d u r e r
0015100 e t u r n s t h e c o n n e
0015120 c t i o n w i l l b e a c
0015140 c e p t e d . 032 x 4 e 1 2 j k 5
0015160 4 \ 2 6 2 f 7 b 5 f 0 B 1 f 6 b
0015200 1 7 f 0 B \r T h e P u p P a
0015220 c k a g e c u r r e n t l y
0015240 u s e s a v e r y s i m p
0015260 l e b u f f e r a l l o c a
0015300 t i o n s t r a t e g y .
0015320 I t a l l o c a t e s a f
0015340 i x e d n u m b e r o f b
0015360 u f f e r s f o r e a c h
0015400 h a l f o f e a c h B y t
0015420 e S t r e a m . ( I t d o
0015440 e s t h e c o r r e c t t
0015460 h i n g s i f t h e o t h
0015500 e r e n d a l l o c a t e s
0015520 f e w e r b u f f e r s . )
0015540 T h u s i t i s e a s
0015560 y t o g e n e r a t e d e
0015600 a d l o c k s . T h e d e
0015620 f a u l t n u m b e r i s
0015640 5 . ( I f y o u a r e
0015660 c o u n t i n g b u f f e r s
0015700 , d o n ' t f o r g e t t
0015720 h e e x t r a o n e t h a
0015740 t i s b e i n g e m p t i
0015760 e d / f i l l e d . ) T h e
0016000 d e f a u l t b u f f e r
0016020 p o o l s i z e i s 1 5 .
0016040 T h a t i s l a r g e
0016060 e n o u g h t o p r e v e n
0016100 t l o c k u p s i f a p
0016120 r o g r a m u s e s b o t h
0016140 h a l v e s o f a s t r
0016160 e a m , o r 2 h a l v e s
0016200 o f 2 s t r e a m s .
0016220 I f y o u a r e t i g h t
0016240 o n c o r e a n d o n l
0016260 y u s i n g o n e h a l f
0016300 o f a s t r e a m ( a t
0016320 a t i m e - - F T P i
0016340 s a g o o d e x a m p l e
0016360 ) , y o u s h o u l d c o
0016400 n s i d e r c h a n g i n g
0016420 t h e b u f f e r p o o l
0016440 s i z e . 032 x 4 e 1 2 j k 5 4 \r
0016460 S e t M a x A l l o c a t i o n
0016500 : P R O C E D U R E [ C A R
0016520 D I N A L ] ; 032 l 4 6 4 0 d 4 2
0016540 6 8 x 4 e 1 2 k 5 4 \ f 6 b 1 7
0016560 f 7 1 0 f 6 2 f 7 8 f 6 \r
0016600 S e t M a x B u f f e r S i z e
0016620 : P R O C E D U R E [ C A R
0016640 D I N A L ] ; 032 l 4 6 4 0 d 4 2
0016660 6 8 x 4 k 5 4 \ f 6 b 1 7 f 7
0016700 1 0 f 6 2 f 7 8 f 6 \r S e t
0016720 M a x A l l o c a t i o n w i
0016740 l l c h a n g e t h e a l
0016760 l o c a t i o n l i m i t f
0017000 o r a n y B y t e S t r e a
0017020 m s t h a t a r e c r e a
0017040 t e d i n t h e f u t u r
0017060 e . S e t M a x B u f f e r
0017100 S i z e w i l l c h a n g e
0017120 t h e m a x i m u n n u m
0017140 b e r o f b y t e s a l l
0017160 o w e d i n a d a t a p
0017200 a c k e t i n c a s e y o
0017220 u w a n t t o u s e l e
0017240 s s t h a n t h e d e f a
0017260 u l t . E x i s t i n g s
0017300 t r e a m s a r e n o t e
0017320 f f e c t e d . 032 x 4 e 1 2 j k
0017340 5 4 \ f 6 b 1 6 f 0 B 8 7 f 6 b
0017360 1 6 f 0 B \r S e t P i n g i n g
0017400 : P R O C E D U R E [ B O O
0017420 L E A N ] ; 032 l 4 6 4 0 d 4 2 6
0017440 8 x 4 e 1 2 k 5 4 \ f 6 b 1 1 f
0017460 7 1 0 f 6 2 f 7 7 f 6 \r N
0017500 o r m a l l y , t h e P u p
0017520 P a c k a g e w i l l t r y
0017540 t o v e r i f y t h a t
0017560 t h e r e m o t e e n d i
0017600 s s t i l l a l i v e i f
0017620 t h e c o n n e c t i o n
0017640 i s i d l e f o r a m i
0017660 n n u t e o r s o . I f
0017700 i t h a s c r a s h e d ,
0017720 S t r e a m C l o s i n g [ t
0017740 r a n s m i s s i o n T i m e o
0017760 u t ] w i l l e v e n t u a
0020000 l l y b e g e n e r a t e d
0020020 . S e t P i n g i n g w i
0020040 l l c h a n g e t h i s p
0020060 a r a m e t e r f o r a n y
0020100 B y t e S t r e a m s t h a
0020120 t a r e c r e a t e d i n
0020140 t h e f u t u r e . A g
0020160 a i n , e x i s t i n g s t
0020200 r e a m s a r e n o t e f
0020220 f e c t e d . 032 x 4 e 1 2 j k 5
0020240 4 \ 1 4 6 f 6 b 3 4 f 0 B 3 2 f
0020260 6 b 1 0 f 0 B \r T h e r e a r
0020300 e c u r r e n t l y f o u r
0020320 o c c a s i o n s f o r T
0020340 i m e o u t s . F i r s t ,
0020360 w h e n t r y i n g t o
0020400 o p e n a c o n n e c t i o
0020420 n , a n E R R O R w i l l
0020440 b e g e n e r a t e d i n
0020460 o n e m i n u t e . S e
0020500 c o n d , a f t e r a c o
0020520 n n e c t i o n i s o p e n
0020540 e d , i t w i l l b e s
0020560 m a s h e d c l o s e d i n
0020600 1 m i n u t e i f a n
0020620 a l l o c a t e i s n o t
0020640 r e c e i v e d . T h i r d ,
0020660 w h i l e s e n d i n g d
0020700 a t a , t h e c o n n e c t
0020720 i o n w i l l b e c l o s
0020740 e d i f a p a c k e t i
0020760 s n o t a c k n o w l e d g
0021000 e d w i t h i n a b o u t
0021020 3 m i n u t e s . T h e
0021040 P u p B y t e S t r e a m p
0021060 a c k a g e u s e s a n a
0021100 d a p t i v e t i m e o u t
0021120 h e u r i s t i c , s o i t
0021140 i s i m p o s s i b l e t
0021160 o p r e d i c t t h e e x
0021200 a c t n u m b e r o f r e
0021220 t r a n s m i s s i o n s .
0021240 I f t h e o t h e r e n d
0021260 g o e s i n t o t h e d
0021300 e b u g g e r o r o t h e r
0021320 w i s e d i e s , t h e r
0021340 e t r a n s m i s s i o n i n
0021360 t e r v a l s h o u l d s t
0021400 a b i l i z e a t 5 s e c
0021420 o n d s . F o u r t h , i
0021440 f a c o n n e c t i o n i
0021460 s i d l e f o r a m i n
0021500 u t e , a p i n g ( e m p
0021520 t y a D a t a ) w i l l b
0021540 e g e n e r a t e d . T h
0021560 e r e a f t e r , t h e y w
0021600 i l l b e g e n e r a t e d
0021620 a t t h e n o r m a l r
0021640 e t r a n s m i s s i o n r a
0021660 t e u n t i l a n a n s w
0021700 e r i s r e c e i v e d .
0021720 I f a n a n s w e r i s
0021740 n o t r e c e i v e d w i
0021760 t h i n t w o m o r e m i
0022000 n u t e s , t h e c o n n e
0022020 c t i o n w i l l b e s m
0022040 a s h e d c l o s e d . 032 x 4
0022060 e 1 2 j k 5 4 \ 9 4 f 7 b 5 f 0
0022100 B \r V a r i o u s o t h e r
0022120 g o o d i e s 032 x 4 e 3 0 k 7 9
0022140 2 \ b \r S e t P u p S t o r m y
0022160 : P R O C E D U R E [ B O O
0022200 L E A N ] ; 032 l 4 6 4 0 d 4 2 6
0022220 8 x 4 e 1 2 k 5 4 \ f 6 b 1 4 f
0022240 7 9 f 6 2 f 7 7 f 6 \r S e
0022260 t P u p S t o r m y c o n t r
0022300 o l s t h e l i g h t n i n
0022320 g o p t i o n i n t h e
0022340 P u p R o u t e r . I f l
0022360 i g h t n i n g i s o n ,
0022400 t h e n o c c a s i o n a l
0022420 p a c k e t s g o i n g i n
0022440 o r o u t w i l l b e
0022460 t h r o w n a w a y t o s
0022500 i m u l a t e t r a n s m i s
0022520 s i o n e r r o r s . T h
0022540 i s i s v e r y h a n d y
0022560 f o r d e b u g g i n g h
0022600 i g h l e v e l p r o t o c
0022620 o l s . T h e d e f a u l
0022640 t i s o f f . T h i s
0022660 o p t i o n i s n o t i n
0022700 c l u d e d i n T i n y P u
0022720 p . I f y o u n e e d
0022740 i t , u s e F a t P u p . 032
0022760 x 4 e 1 2 j k 5 4 \ f 6 b 1 2 f
0023000 0 B 1 4 i 9 I 2 1 6 f 1 3 3 f
0023020 7 b 7 f 1 B 2 3 f 7 b 6 f 1 B 1
0023040 f 0 \r U s e A l t o C h e c k s
0023060 u m M i c r o c o d e : P R O
0023100 C E D U R E ; 032 l 4 6 4 0 d 4 2
0023120 6 8 x 4 e 1 2 k 5 4 \ f 6 b 2 6
0023140 f 7 9 f 6 \r S e t P u p C h e
0023160 c k i t : P R O C E D U R E
0023200 [ B O O L E A N ] ; 032 l 4 6 4 0
0023220 d 4 2 6 8 x 4 k 5 4 \ f 6 b 1 5
0023240 f 7 9 f 6 2 f 7 7 f 6 \r T
0023260 h e p a c k e t f o r m a t
0023300 f o r a P u p p r o v i
0023320 d e s f o r a s o f t w a
0023340 r e c h e c k s u m i n a
0023360 d d i t i o n t o a n y e
0023400 r r o r c h e c k i n g t h
0023420 a t t h e h a r d w a r e
0023440 p r o v i d e s . T h i s
0023460 i s v e r y u s e f u l f
0023500 o r a v o i d i n g t r a s
0023520 h e d f i l e s i n s p i
0023540 t e o f f l a k e y h a r
0023560 d w a r e o r s i c k g a
0023600 t e w a y s . I n t e r n a
0023620 l l y , t h e r e a r e 3
0023640 o p t i o n s : i g n o r e
0023660 , s o f t w a r e , a n d
0023700 m i c r o c o d e . T h e
0023720 d e f a u l t i s s o f t w
0023740 a r e . S e t P u p C h e c
0023760 k i t [ F A L S E ] s e t s
0024000 t h e s w i t c h t o i g
0024020 n o r e . Y o u s h o u l
0024040 d d o t h i s o n l y i
0024060 f y o u r e a l l y n e e
0024100 d t o g o f a s t e r a
0024120 n d w o n ' t c o m p l a i
0024140 n i f y o u r d a t a g
0024160 e t s c o r r u p t e d o c
0024200 c a s i o n a l l y . S e t
0024220 P u p C h e c k i t [ T R U E ]
0024240 s e t s t h e s w i t c h
0024260 t o s o f t w a r e . U
0024300 s e A l t o C h e c k s u m M i
0024320 c r o c o d e s e t s t h e
0024340 s w i t c h t o m i c r o
0024360 c o d e . Y o u s h o u l
0024400 d u s e t h i s o n l y
0024420 i f y o u a r e s u r e
0024440 t h a t t h e c o r r e c t
0024460 m i c r o c o d e i s i n
0024500 t h e R A M . R u n M e
0024520 s a . r u n l o a d s t h e
0024540 R A M c o r r e c t l y i
0024560 f y o u a r e r u n n i n
0024600 g o n a n A l t o w i t
0024620 h 2 K o f P R O M o r
0024640 a 3 K R A M . T h e r
0024660 e a s o n t h a t t h e d
0024700 e f a u l t i s n ' t t o
0024720 u s e t h e m i c r o c o d
0024740 e i f t h e c o n f i g u
0024760 r a t i o n l o o k s r e a
0025000 s o n a b l e i s t o a v
0025020 o i d c o n f u s i o n w h
0025040 e n r u n w i t h p r o g
0025060 r a m s t h a t l o a d s
0025100 p e c i a l m i c r o c o d e
0025120 . B e w a r e o f g e t
0025140 t i n g r e s t a r t e d o
0025160 n a m a c h i n e w i t h
0025200 a d i f f e r e n t c o n
0025220 f i g u r a t i o n a f t e r
0025240 i f y o u u s e U s e A
0025260 l t o C h e c k s u m M i c r o
0025300 c o d e a n d c a l l M a
0025320 k e I m a g e . 032 x 4 e 1 2 j k
0025340 5 4 \ 2 5 1 f 6 b 6 f 0 B 2 f 6
0025360 b 8 f 0 B 6 f 6 b 9 f 0 B 1 8 f
0025400 6 b 8 f 0 B 3 f 6 b 1 4 f 7 5
0025420 f 6 1 f 0 B 2 0 f 6 b 6 f 0 B
0025440 1 2 1 f 6 b 1 4 f 7 4 f 6 1
0025460 f 0 B 2 0 f 6 b 8 f 0 B 3 f 6 b
0025500 2 4 f 0 B 2 0 f 6 b 9 f 0 B 8 1
0025520 f 1 3 f 0 2 5 f 1 3 f 0
0025540 5 2 f 1 4 f 0 9 f 1 3 f 0
0025560 1 f 1 1 6 8 f 0 9 1 f 6 b
0025600 2 4 f 0 B 1 0 f 6 b 9 f 0 B \r S
0025620 e t L o c a l O n l y : P R O
0025640 C E D U R E [ B O O L E A N ]
0025660 ; 032 l 4 6 4 0 d 4 2 6 8 x 4 e 1
0025700 2 k 5 4 \ f 6 b 1 4 f 7 9 f 6
0025720 2 f 7 7 f 6 \r S e t L o c a
0025740 l O n l y c o n t r o l s t
0025760 h e a c t i v a t i o n o f
0026000 t h e n o r m a l E t h e
0026020 r n e t D r i v e r . I f
0026040 i t i s o n , a d u m
0026060 m y d e v i c e i s u s e
0026100 d r a t h e r t h a n t h
0026120 e E t h e r n e t D r i v e
0026140 r . T h i s a l l o w s
0026160 b u g s t o b e r e p r o
0026200 d u c e d s l o w l y w i t
0026220 h o u t t h e c o m p l i c
0026240 a t i o n s o f r a n d o m
0026260 p a c k e t s c o m i n g
0026300 i n o v e r t h e e t h e
0026320 r n e t a t u n s c h e d u
0026340 l e d t i m e s . O f c
0026360 o u r s e , y o u w o n ' t
0026400 b e a b l e t o t a l k
0026420 t o a n y o t h e r m a
0026440 c h i n e s i f l o c a l O
0026460 n l y i s o n , b u t y
0026500 o u c a n t a l k t o y
0026520 o u r s e l f . T h i s i
0026540 s n o t i n c l u d e d i
0026560 n T i n y P u p . I f y
0026600 o u n e e d i t , i n c l
0026620 u d e L o o p B a c k P l u g
0026640 i n y o u r c o n f i g .
0026660 032 x 4 e 1 2 j k 5 4 \ f 6 b 1 2
0026700 f 0 B 3 2 5 f 6 b 9 f 0 B 3 7 f
0026720 1 2 6 f 7 b 7 f 1 B 2 7 f 7 b
0026740 1 2 f 1 B 1 6 f 0 \r C a p t u r
0026760 e E r r o r s : P R O C E D U
0027000 R E [ P R O C E D U R E [ E R
0027020 R O R ] ] ; 032 l 4 6 4 0 d 4 2 6
0027040 8 x 4 e 1 2 k 5 4 \ f 6 b 1 5 f
0027060 7 1 0 f 6 1 f 7 1 6 f 6 \r
0027100 T h e r e a r e m a n y i
0027120 n t e r n a l c o n s i s t e
0027140 n c y c h e c k s w i t h i
0027160 n t h e P u p P a c k a g
0027200 e . W h e n a p r o b l
0027220 e m i s d e t e c t e d ,
0027240 a p r o c e d u r e i s c
0027260 a l l e d w i t h a n E R
0027300 R O R a s a n a r g u m e
0027320 n t . ( T h e E R R O R
0027340 i s s i m p l y a c o n v
0027360 i e n t w a y t o g e t
0027400 t h e c o m p i l e r / s y s
0027420 t e m t o g e n e r a t e
0027440 a u n i q u e v a l u e .
0027460 W h e n a n e n u m e r a
0027500 t e d t y p e i s u s e d
0027520 , i t i s m o r e t i m
0027540 e c o n s u m i n g t o a
0027560 d d a n e w c a t e g o r
0027600 y o f p r o b l e m t o
0027620 t h e l i s t . ) T h e
0027640 d e f a u l t e r r o r h a
0027660 n d l e r s i m p l y d i v
0027700 e s i n t o t h e d e b u
0027720 g g e r v i a C a l l D e b
0027740 u g e r f r o m M i s c D e
0027760 f s . I f t h a t h a p
0030000 p e n s t o y o u , l o o
0030020 k a t t h e s t a c k .
0030040 I t s a r g u m e n t w i
0030060 l l g e t p r i n t e d i
0030100 n e n g l i s h i f y o u
0030120 h a v e e n o u g h s y m
0030140 b o l s o n y o u r d i s
0030160 k . I f n o t , t h e
0030200 S i g n a l L i s t e r m a y
0030220 h e l p . 032 x 4 e 1 2 j k 5 4
0030240 \ 1 2 6 f 7 b 5 f 0 B 2 3 f 7 b
0030260 5 f 0 B 2 5 0 f 6 b 1 1 f 0 B 6
0030300 f 6 b 8 f 0 B 1 4 2 f 6 b 1 2 f
0030320 0 B \r G e t D o S t a t s : P
0030340 R O C E D U R E R E T U R N S
0030360 [ B O O L E A N ] ; 032 l 4 6 4
0030400 0 d 4 2 6 8 x 4 e 1 2 k 5 4 \ f
0030420 6 b 1 2 f 7 1 7 f 6 2 f 7
0030440 7 f 6 \r T h e P u p P a c k
0030460 a g e i n c l u d e s a (
0030500 c o m p i l e t i m e ) o p
0030520 t i o n a l s t a t i s t i c
0030540 s g a t h e r i n g f a c i
0030560 l i t y . G e t D o S t a t
0030600 s r e t u r n s T R U E i
0030620 f i t h a s b e e n c o
0030640 m p i l e d i n . 032 x 4 e 1 2
0030660 j k 5 4 \ 8 3 f 6 b 1 0 f 0 B 9
0030700 f 7 b 4 f 0 B \r I n s p e c t I
0030720 n c o m i n g P u p s : P R O
0030740 C E D U R E [ B O O L E A N ,
0030760 P R O C D U R E [ C A R D I
0031000 N A L , P u p B u f f e r ] ]
0031020 ; 032 l 4 6 4 0 d 4 2 6 8 x 4 e 1
0031040 2 k 7 2 0 \ f 6 b 2 1 f 7 1 0
0031060 f 6 1 f 7 2 9 f 6 9 f 7
0031100 1 f 6 \r I n s p e c t O u t g o
0031120 i n g P u p s : P R O C E D U
0031140 R E [ B O O L E A N , P R O
0031160 C D U R E [ C A R D I N A L ,
0031200 P u p B u f f e r ] ] ; 032 l 4
0031220 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6
0031240 b 2 1 f 7 1 0 f 6 1 f 7 2
0031260 9 f 6 9 f 7 1 f 6 \r i n c o
0031300 m i n g P u p : C A R D I N A
0031320 L = 1 0 0 ; 032 l 5 9 1 0 d 5
0031340 5 3 8 x 4 k 5 4 \ f 6 b 1 3 f 7
0031360 8 f 6 \r o u t g o i n g P u p
0031400 : C A R D I N A L = 1 0 1
0031420 ; 032 l 5 9 1 0 d 5 5 3 8 x 4 k 5
0031440 4 \ f 6 b 1 3 f 7 8 f 6 \r z a
0031460 p p e d I n c o m m i n g P u p
0031500 : C A R D I N A L = 1 0 2
0031520 ; 032 l 5 9 1 0 d 5 5 3 8 x 4 k 5
0031540 4 \ f 6 b 2 0 f 7 8 f 6 \r z a
0031560 p p e d O u t g o i n g P u p :
0031600 C A R D I N A L = 1 0 3 ;
0031620 032 l 5 9 1 0 d 5 5 3 8 x 4 k 5 4
0031640 \ f 6 b 1 9 f 7 8 f 6 \r S h o
0031660 w P u p B u f f e r : P R O C
0031700 E D U R E [ C A R D I N A L ,
0031720 P u p B u f f e r ] ; 032 l 4 6
0031740 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6 b
0031760 1 5 f 7 1 0 f 6 1 f 7 1 0
0032000 f 6 \r T h e r e a r e a l s
0032020 o h o o k s f o r i n s p
0032040 e c t i n g e a c h P u p
0032060 a s i t g o e s i n o r
0032100 o u t , a n d a r o u t
0032120 i n e t h a t p r i n t s
0032140 t h e m . S h o w P u p B u
0032160 f f e r i s n o t p a r t
0032200 o f t h e n o r m a l P
0032220 u p P a c k a g e . I t
0032240 l i v e s i n P u p S h o w
0032260 . b c d . 032 x 4 e 1 2 j k 5 4 \
0032300 1 0 0 f 6 b 1 3 f 0 B 4 i 3 I \r
0032320 I n s p e c t I n c o m i n g P
0032340 u p s [ T R U E , S h o w P u p
0032360 B u f f e r ] w i l l p r i
0032400 n t a l l i n c o m i n g
0032420 P u p s . Y o u c a n ,
0032440 o f c o u r s e , s u p p l
0032460 y y o u r o w n r o u t i
0032500 n e t o p r i n t t h e m
0032520 i n t h e f o r m a t t
0032540 h a t y o u p r e f e r a
0032560 n d / o r p r i n t o n l y
0032600 t h e i n t e r e s t i n g
0032620 o n e s . 032 x 4 e 1 2 j k 5 4
0032640 \ f 6 b 2 0 f 7 4 f 6 1 5 f
0032660 0 B \r W a t c h e r s 032 x 4 e 3
0032700 2 j k 7 9 2 \ b \r T h e w a t
0032720 c h e r c o n c e p t h a s
0032740 t w o i d e a s . F i r
0032760 s t , i t a l l o w s a
0033000 c l i e n t p r o g r a m t
0033020 o l o o k a t P u p s a
0033040 r r i v i n g w h e n t h e
0033060 r e i s n o s o c k e t
0033100 r e a d y t o r e c e i v e
0033120 t h e m . T h i s w o u
0033140 l d a l l o w i t t o f
0033160 i r e u p a l i s t e n e
0033200 r w h e n a n R F C a r
0033220 r i v e s , a n d n o t c
0033240 l u t t e r u p c o r e o
0033260 r o t h e r r e s o u r c e
0033300 s b y l i s t e n i n g w
0033320 h e n t h e r e i s n o
0033340 n e e d . 032 x 4 e 1 2 j k 5 4 \
0033360 4 i 7 I \r T h e s e c o n d
0033400 i d e a i s t o a l l o w
0033420 p r o g r a m s t o p a y
0033440 a t t e n t i o n t o t h
0033460 e E t h e r n e t w h e n
0033500 t h e P u p P a c k a g e
0033520 i s n o t r e a l l y o n
0033540 . T h i s s a v e s a
0033560 l o t o f c o r e i f t
0033600 h e r e i s n o r e a l
0033620 n e e d f o r t h e P u p
0033640 P a c k a g e . A g a i n
0033660 , i f a n R F C a r r i
0033700 v e s , t h e P u p P a c
0033720 k a g e c a n b e t u r n
0033740 e d o n a n d a l i s t
0033760 e n e r s t a r t e d . (
0034000 T h i s h a s n o t b e e
0034020 n r e i m p l e m e n t e d
0034040 s i n c e M e s a 3 ; I f
0034060 y o u n e e d i t , p l
0034100 e a s e l e t m e k n o w
0034120 . ) 032 x 4 e 1 2 j k 5 4 \r I n s
0034140 p e c t S t r a y P u p s : P
0034160 R O C E D U R E [ \r o n : B
0034200 O O L E A N , \r s e e B r o a d
0034220 C a s t : B O O L E A N , \r p
0034240 r o c : P R O C E D U R E [
0034260 P u p B u f f e r ] R E T U R
0034300 N S [ B O O L E A N ] ] ; 032 l
0034320 4 6 4 0 d 4 2 6 8 x 4 e 1 2 k 5
0034340 4 \ f 6 b 1 8 f 7 9 f 6 2 f
0034360 7 1 f 6 4 f 7 9 f 6 1 4
0034400 f 7 9 f 6 6 f 7 9 f 6 1
0034420 3 f 7 7 f 6 2 f 7 7 f 6 \r
0034440 I f o n i s T R U E , t
0034460 h e n w a t c h i n g i s
0034500 s t a r t e d . I f n o t
0034520 , i t i s s t o p p e d .
0034540 A f t e r w a t c h i n g
0034560 h a s b e e n s t a r t e
0034600 d , p r o c w i l l b e
0034620 c a l l e d e a c h t i m e
0034640 a P u p a r r i v e s f
0034660 o r a n u n k n o w n s o
0034700 c k e t . I f i t i s
0034720 a b r o a d c a s t P u p ,
0034740 t h e n s e e B r o a d C a
0034760 s t m u s t a l s o h a v
0035000 e b e e n T R U E a t t
0035020 h e l a s t c a l l t o
0035040 I n s p e c t S t r a y P u p s
0035060 . T h e p r o c m u s t
0035100 n o t d o a n y t h i n g
0035120 t o t h e b u f f e r -
0035140 i n p a r t i c u l a r ,
0035160 d o n o t c a l l R e t u
0035200 r n F r e e P u p B u f f e r .
0035220 I f t h e p r o c r e
0035240 t u r n s T R U E , t h e
0035260 P u p P a c k a g e s e n d
0035300 s a n E r r o r P u p (
0035320 w i t h s u b t y p e n o -
0035340 s o c k e t ) b a c k t o
0035360 t h e s e n d e r i f i t
0035400 i s n o t a b r o a d c
0035420 a s t p a c k e t o r a n
0035440 e r r o r P u p . 032 x 4 e 1
0035460 2 j k 5 4 \ 3 f 6 b 2 f 0 B 4 f
0035500 7 b 4 f 0 B 8 6 f 6 b 4 f 0 B 9
0035520 5 f 6 b 1 2 f 0 B 2 1 f 7 b 4 f
0035540 0 B 2 1 f 6 b 1 6 f 0 B 7 f 6 b
0035560 4 f 0 B 6 5 f 6 b 1 9 f 0 B 1 0
0035600 f 6 b 4 f 0 B 9 f 7 b 4 f 0 B \r
0035620 P u p D e b u g 032 x 4 e 3 2 j k
0035640 5 4 \ b \r T h e r e i s a l
0035660 s o a s e t o f d e b u
0035700 g g i n g r o u t i n e s t
0035720 h a t a r e a c c e s s e d
0035740 v i a M e n u c o m m a n
0035760 d s i n t h e D e b u g g
0036000 e r . T h e y o n l y w
0036020 o r k i f y o u a r e u
0036040 s i n g F a t P u p . T h
0036060 e y a r e c o n t a i n e d
0036100 i n P u p D e b u g . b c d
0036120 . I t n e e d s t o b
0036140 e l o a d e d i n t o t h
0036160 e D e b u g g e r ' s c o r
0036200 e i m a g e w i t h a c
0036220 o m m a n d l i n e s i m i
0036240 l a r t o t h e f o l l o
0036260 w i n g : 032 x 4 e 1 2 j k 5 4 \r
0036300 > X D e b u g P u p D e b u g
0036320 / l 032 l 4 2 6 9 x 4 e 1 2 j k 5
0036340 4 \ 1 f 6 \r I t a d d s i t
0036360 s o w n m e n u t o t h
0036400 e m a i n m e n u s t a c
0036420 k . T h e v a r i o u s
0036440 c o m m a n d s w i l l p r
0036460 i n t t h e r o u t i n g
0036500 t a b l e , t h e s o c k e
0036520 t t a b l e , a s u m m a
0036540 r y o f t h e b u f f e r
0036560 h e a d e r s , s u m m a r
0036600 y o f t h e p a c k e t
0036620 c o n t e n t s , o r t h e
0036640 c u r r e n t c o n t e n t
0036660 s o f t h e c o u n t e r
0036700 s m a i n t a i n e d b y
0036720 t h e S t a t s P a c k a g
0036740 e . 032 x 4 e 1 2 j k 5 4 \r N a m
0036760 e p r o c e s s i n g u t i
0037000 l i t i e s 032 x 4 e 3 2 j k 7 9
0037020 2 \ b \r T h e P u p P a c k
0037040 a g e a l s o p r o v i d e
0037060 s a c o l l e c t i o n o
0037100 f c o m m o n l y n e e d e
0037120 d r o u t i n e s f o r t
0037140 r a n s l a t i n g n a m e s
0037160 a n d a d d r e s s e s . 032
0037200 x 4 e 2 0 j k 6 2 \r G e t P u p
0037220 A d d r e s s : P R O C E D U
0037240 R E [ P O I N T E R T O P
0037260 u p A d d r e s s , S T R I N
0037300 G ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0037320 e 1 2 k 5 4 \ f 6 b 1 5 f 7 9
0037340 f 6 2 f 7 1 0 f 6 1 3 f 7
0037360 6 f 6 \r P u p N a m e L o o k
0037400 u p : P R O C E D U R E [ P
0037420 O I N T E R T O P u p A d d
0037440 r e s s , S T R I N G ] ; 032 l
0037460 4 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f
0037500 6 b 1 5 f 7 9 f 6 2 f 7 1
0037520 0 f 6 1 3 f 7 6 f 6 \r E n u
0037540 m e r a t e P u p A d d r e s s
0037560 e s : P R O C E D U R E [ \r
0037600 S T R I N G , P R O C E D U R
0037620 E [ P u p A d d r e s s ] R
0037640 E T U R N S [ B O O L E A N ]
0037660 ] , \r R E T U R N S [ B O O
0037700 L E A N ] ; 032 l 4 6 4 0 d 4 2 6
0037720 8 x 4 k 5 4 \ f 6 b 2 3 f 7 9
0037740 f 6 2 f 7 1 8 f 6 1 4 f 7
0037760 7 f 6 2 f 7 7 f 6 5 f 7
0040000 7 f 6 2 f 7 7 f 6 \r P u p
0040020 A d d r e s s L o o k u p : P
0040040 R O C E D U R E [ P u p A d d
0040060 r e s s , S T R I N G ] ; 032 l
0040100 4 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f
0040120 6 b 1 8 f 7 9 f 6 1 4 f 7
0040140 6 f 6 \r P u p N a m e T r o u b
0040160 l e : E R R O R [ e : S T
0040200 R I N G , c o d e : N a m e
0040220 L o o k u p E r r o r C o d e ]
0040240 ; 032 l 4 2 5 6 x 4 e 2 4 k 5 4 \
0040260 f 6 b 1 6 f 7 5 f 6 5 f 7
0040300 6 f 6 2 9 f 0 B \r N a m e L o
0040320 o k u p E r r o r C o d e : T
0040340 Y P E = { n o R o u t e ,
0040360 n o R e s p o n s e , e r r o
0040400 r F r o m S e r v e r } ; 032 l 4
0040420 2 5 6 x 4 k 5 4 \ f 6 b 2 1 f 7
0040440 4 f 6 \r G e t P u p A d d r e
0040460 s s f i r s t c a l l s P
0040500 a r s e P u p A d d r e s s C o
0040520 n s t a n t , a n d i f t
0040540 h a t f a i l s , i t c a
0040560 l l s P u p N a m e L o o k u
0040600 p . P u p N a m e L o o k u
0040620 p m a k e s a s p e c i a
0040640 l c a s e c h e c k f o r
0040660 a n a m e o f " M E "
0040700 ( b o t h l e t t e r s m u
0040720 s t b e c a p i t a l s ) .
0040740 I f s o , i t r e t u
0040760 r n s t h e a d d r e s s
0041000 o f t h e l o c a l m a c
0041020 h i n e . O t h e r w i s e
0041040 i t s e n d s t h e t e
0041060 x t s t r i n g t o t h e
0041100 n a m e l o o k u p s e r
0041120 v e r w h i c h i s n o r
0041140 m a l l y r u n n i n g o n
0041160 a n e a r b y G a t e w a
0041200 y . S i n c e a m a c h
0041220 i n e m a y h a v e s e v
0041240 e r a l a d d r e s s e s ,
0041260 P u p N a m e L o o k u p s e
0041300 l e c t s t h e b e s t o
0041320 n e o f t h e a n s w e r
0041340 s r e t u r n e d . 032 x 4 e 6
0041360 j k 5 4 \ f 6 b 1 3 f 0 B 1 3 f
0041400 6 b 2 3 f 0 B 3 0 f 6 b 1 3 f 0
0041420 B 3 f 6 b 1 3 f 0 B 2 8 7 f 6 b
0041440 1 3 f 0 B \r T h e r e a r e
0041460 t h r e e r e a s o n s w h
0041500 y P u p N a m e L o o k u p
0041520 m a y n o t b e a b l e
0041540 t o s u p p l y a r e a s
0041560 o n a b l e a n s w e r .
0041600 I f s o , i t w i l l g
0041620 e n e r a t e t h e E R R O
0041640 R P u p N a m e T r o u b l e
0041660 w i t h a t e x t s t r
0041700 i n g t h a t m i g h t h
0041720 e l p a p e r s o n a n d
0041740 a n e r r o r c o d e t
0041760 h a t m i g h t b e u s e
0042000 f u l b y a p r o g r a m
0042020 . I n t h e f i r s t
0042040 c a s e , n o R o u t e , t
0042060 h e i n f o r m a t i o n w
0042100 a s r e c e i v e d f r o m
0042120 t h e g a t e w a y , b u
0042140 t t h e r e i s n o w a
0042160 y t o g e t t o t h e
0042200 t a r g e t m a c h i n e .
0042220 I n t h e s e c o n d ,
0042240 n o R e s p o n s e , n o n
0042260 a m e l o o k u p s e r v e
0042300 r r e s p o n d e d w i t h
0042320 i n a r e a s o n a b l e
0042340 l e n g t h o f t i m e .
0042360 U n f o r t u n a t e l y ,
0042400 t h e t h i r d c a s e ,
0042420 e r r o r F r o m S e r v e r ,
0042440 d o e s n o t h e l p a
0042460 p r o g r a m m u c h .
0042500 T h e p r o t o c o l d o e
0042520 s n o t s u p p l y e r r
0042540 o r c o d e s u s e f u l
0042560 t o p r o g r a m s , b u t
0042600 t h e d e s i r e d i n f
0042620 o r m a t i o n i s p r o b
0042640 a b l y i n t h e t e x t
0042660 s t r i n g . 032 x 4 e 6 j k 5
0042700 4 \ 2 8 f 6 b 1 3 f 0 B 7 7 f 7
0042720 b 5 f 0 B 1 f 6 b 1 4 f 0 B 1 1
0042740 8 f 6 b 7 f 0 B 1 1 5 f 6 b 1 0
0042760 f 0 B 1 0 2 f 6 b 1 5 f 0 B \r I
0043000 f t h e s o c k e t n u m
0043020 b e r f r o m t h e t e x
0043040 t s t r i n g i s n o t
0043060 e x p l i c i t l y s p e c i
0043100 f i e d , t h e s o c k e t
0043120 n u m b e r i n t h e P
0043140 u p A d d r e s s w i l l n
0043160 o t b e u p d a t e d .
0043200 B e s u r e t o i n i t i
0043220 a l i z e i t ! . T h i s
0043240 a l l o w s a p r o g r a
0043260 m t o i n i t i a l i z e
0043300 a d e f a u l t v a l u e
0043320 t h a t c a n e a s i l y
0043340 b e o v e r r i d d e n f o
0043360 r d e b u g g i n g b y a
0043400 p e r s o n t y p i n g i
0043420 n a t e x t s t r i n g
0043440 t h a t i s n o r m a l l y
0043460 j u s t a m a c h i n e
0043500 n a m e . 032 x 4 e 6 j k 5 4 \ 9
0043520 6 f 6 b 1 0 f 0 B \r T h e t e
0043540 x t s t r i n g i s e i t
0043560 h e r t h e n a m e o f
0043600 a m a c h i n e o r t h e
0043620 a c t u a l a d d r e s s
0043640 o f t h e m a c h i n e e
0043660 n c o d e d a s " < h o s
0043700 t > # " f o r a m a c h i
0043720 n e o n t h e l o c a l
0043740 n e t w o r k , o r " < n e
0043760 t > # < h o s t > # " t o s
0044000 p e c i f y a n e x p l i c
0044020 i t n e t w o r k n u m b e
0044040 r . I f y o u a l s o
0044060 w a n t t o s p e c i f y
0044100 t h e r e m o t e s o c k e
0044120 t n u m b e r u s e " < n
0044140 a m e > + < s o c > " o r "
0044160 < n e t > # < h o s t > # < s o
0044200 c > " . < n a m e > i s
0044220 a t e x t s t r i n g r e
0044240 g i s t e r e d i n t h e
0044260 f i l e < P o r t o l a > P U
0044300 P - N E T W O R K . T X T o n
0044320 I v y . < n e t > , < h
0044340 o s t > , a n d < s o c >
0044360 a r e o c t a l n u m b e r
0044400 s . S e e E d T a f t '
0044420 s m e m o , [ M a x c ] < P
0044440 u p > P u p N a m e . p r e s s
0044460 , f o r t h e f i n e p
0044500 r i n t . 032 x 4 e 6 j k 5 4 \ 3
0044520 0 i 4 I 2 8 i 7 I \r E n u m e r
0044540 a t e P u p A d d r e s s e s
0044560 i s s i m i l a r t o P u
0044600 p N a m e L o o k u p b u t
0044620 i t g i v e s t h e c l i
0044640 e n t a l l o f t h e a
0044660 d d r e s s e s i n t h e
0044700 d a t a b a s e i n c a s e
0044720 t h e r e i s m o r e t
0044740 h a n o n e . T h i s i
0044760 s u s e f u l f o r l o c
0045000 a t i n g b a c k u p s e r
0045020 v e r s i n c a s e t h e
0045040 p r i m a r y o n e i s
0045060 d o w n . T h e n e a r e
0045100 s t a d d r e s s e s a r e
0045120 p r e s e n t e d f i r s t
0045140 a n d t h e o r d e r i
0045160 n t h e n a m e l o o k u
0045200 p d a t a b a s e i s p r
0045220 e s e r v e d w h e n t h e
0045240 r e a r e s e v e r a l a
0045260 n s w e r s e q u a l l y c
0045300 l o s e . I t a n a d d
0045320 r e s s i s c u r r e n t l
0045340 y n o t r e a c h a b l e ,
0045360 t h e e n t r y i s s t
0045400 i l l p r e s e n t e d t o
0045420 t h e c l i e n t . ( P
0045440 u p N a m e L o o k u p s i m
0045460 p l y p i c k s t h e f i
0045500 r s t o n e . ) A l t h o
0045520 u g h i t i s p o s s i b
0045540 l e t o s e n d a n d r
0045560 e c e i v e P u p s f r o m
0045600 w i t h i n t h e c l i e
0045620 n t s u p p l i e d p r o c
0045640 e d u r e ( f o r e x a m p
0045660 l e , t o s e e i f t h
0045700 a t m a c h i n e i s u p
0045720 ) t h a t s h o u l d p r
0045740 o b a b l y b e a v o i d e
0045760 d s i n c e t h e b u f f
0046000 e r t h a t t h e a n s w
0046020 e r a r r i v e d i n ( a
0046040 n d o t h e r s w i t h d
0046060 u p l i c a t e a n s w e r s
0046100 i f t h e r e i s m o r
0046120 e t h a n o n e n a m e
0046140 l o o k u p s e r v e r o n
0046160 t h e l o c a l n e t w o
0046200 r k ) i s s t i l l t i e
0046220 d u p . I f t h e c l
0046240 i e n t p r o c e d u r e r
0046260 e t u r n s T R U E , t h e
0046300 r e s t o f t h e e n t
0046320 r i e s a r e i g n o r e d
0046340 . E n u m e r a t e P u p A
0046360 d d r e s s e s r e t u r n s
0046400 F A L S E i f t h e c l
0046420 i e n t p r o c e d u r e n
0046440 e v e r r e t u r n s T R U
0046460 E . 032 x 4 e 6 j k 5 4 \ f 6 b 2
0046500 1 f 0 B 1 5 f 6 b 1 3 f 0 B 4 0
0046520 4 f 6 b 1 3 f 0 B 3 9 5 f 7 b 4
0046540 f 0 B 4 0 f 6 b 2 1 f 0 B 9 f 7
0046560 b 5 f 0 B 3 9 f 7 b 4 f 0 B \r P
0046600 a r s e P u p A d d r e s s C o
0046620 n s t a n t : P R O C E D U R
0046640 E [ P O I N T E R T O P u
0046660 p A d d r e s s , S T R I N G
0046700 ] \r R E T U R N S [ B O O L E
0046720 A N ] ; 032 l 4 6 4 0 d 4 2 6 8 x
0046740 4 e 1 2 k 5 4 \ f 6 b 2 5 f 7
0046760 9 f 6 2 f 7 1 0 f 6 1 3 f
0047000 7 6 f 6 2 f 7 7 f 6 2 f
0047020 7 7 f 6 \r P a r s e P u p A d
0047040 d r e s s C o n s t a n t t r
0047060 i e s t o p a r s e t h e
0047100 t e x t s t r i n g i n t
0047120 o a n e t w o r k a d d r
0047140 e s s . T h e s t r i n g
0047160 m u s t b e o f t h e
0047200 f o r m < h o s t > # , < n
0047220 e t > # < h o s t > # , o r
0047240 < n e t > # < h o s t > # < s o
0047260 c > . S i n c e s o c k e
0047300 t n u m b e r s m a y b e
0047320 3 2 b i t s , t h e f o
0047340 r m < s o c - h i g h > | < s
0047360 o c - l o w > m a y a l s o
0047400 b e u s e d t o s p e c
0047420 i f y a s o c k e t n u m
0047440 b e r . A l l n u m b e r
0047460 s a r e o c t a l . I n
0047500 v a l i d c h a r a c t e r s
0047520 , o v e r s i z e n u m b e
0047540 r s a n d w h a t e v e r
0047560 m e r e l y r e t u r n F A
0047600 L S E . 032 x 4 e 1 2 j k 5 4 \ f
0047620 6 b 2 3 f 0 B 3 3 7 f 7 b 5 f 0
0047640 B \r A p p e n d P u p A d d r e
0047660 s s : P R O C E D U R E [ S
0047700 T R I N G , P u p A d d r e s
0047720 s ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0047740 e 1 2 k 5 4 \ f 6 b 1 8 f 7 9
0047760 f 6 2 f 7 6 f 6 \r A p p e n
0050000 d H o s t A d d r e s s : P R
0050020 O C E D U R E [ S T R I N G ,
0050040 P u p A d d r e s s ] ; 032 l 4
0050060 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6
0050100 b 1 9 f 7 9 f 6 2 f 7 6 f
0050120 6 \r A p p e n d M y N a m e :
0050140 P R O C E D U R E [ S T R I N
0050160 G ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0050200 k 5 4 \ f 6 b 1 4 f 7 9 f 6
0050220 2 f 7 6 f 6 \r A p p e n d P u
0050240 p A d d r e s s a p p e n d s
0050260 a t e x t t r a n s l a t
0050300 i o n o f t h e s p e c i
0050320 f i e d a d d r e s s t o
0050340 t h e s t r i n g . T h e
0050360 f o r m a t i s n e t # h
0050400 o s t # s o c , w h e r e s
0050420 o c m a y b e m o r e t
0050440 h a n 1 6 b i t s . A l
0050460 l n u m b e r s a r e i n
0050500 o c t a l . A p p e n d H
0050520 o s t A d d r e s s u s e s
0050540 P u p A d d r e s s L o o k u p
0050560 t o t r a n s l a t e t h
0050600 e a d d r e s s i n t o a
0050620 n a m e . I f i t r u
0050640 n s i n t o t r o u b l e s
0050660 , i t c a l l s A p p e n
0050700 d P u p A d d r e s s . A p
0050720 p e n d M y N a m e f a b r i
0050740 c a t e s a n a d d r e s s
0050760 f o r t h e l o c a l m
0051000 a c h i n e , a n d t h e n
0051020 c a l l s A p p e n d H o s
0051040 t A d d r e s s . 032 x 4 e 1 2 j
0051060 k 5 4 \ f 6 b 1 6 f 0 B 1 6 1 f
0051100 6 b 1 7 f 0 B 6 f 6 b 1 6 f 0 B
0051120 7 5 f 6 b 1 6 f 0 B 3 f 6 b 1 2
0051140 f 0 B 6 1 f 6 b 1 7 f 0 B \r A l
0051160 t h o u g h n o t r e a l l
0051200 y n e e d e d f o r n a m
0051220 e p r o c e s s i n g , G e
0051240 t H o p s T o N e t w o r k i
0051260 s n o r m a l l y u s e d
0051300 a l o n g w i t h o t h e r
0051320 r o u t i n e s i n t h i
0051340 s s e c t i o n , s o i t
0051360 i s d e s c r i b e d h e
0051400 r e . 032 x 4 e 2 4 j k 5 4 \ 4 8
0051420 f 6 b 1 6 f 0 B \r G e t H o p s
0051440 T o N e t w o r k : P R O C E
0051460 D U R E [ P u p N e t I D ]
0051500 R E T U R N S [ C A R D I N A
0051520 L ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0051540 e 1 2 k 5 4 \ f 6 b 1 8 f 7 9
0051560 f 6 1 2 f 7 7 f 6 2 f 7
0051600 8 f 6 \r G e t H o p s T o N e t
0051620 w o r k c a n b e u s e d
0051640 t o h e l p y o u d e c
0051660 i d e w h i c h m a c h i n
0051700 e y o u w a n t t o t a
0051720 l k t o . I t r e t u r
0051740 n s a h u g e n u m b e r
0051760 i f t h e n e t w o r k
0052000 n u m b e r i s u n r e a s
0052020 o n a b l e o r t h e r e
0052040 i s c u r r e n t l y n o
0052060 w a y t o g e t t h e r e
0052100 f r o m h e r e . I n
0052120 t h e f u t u r e , t h e
0052140 P u p P a c k a g e m a y
0052160 b e a b l e t o p r o v i
0052200 d e m o r e i n f o r m a t
0052220 i o n . 032 x 4 e 1 2 j k 5 4 \ f
0052240 6 b 1 6 f 0 B \r P a c k e t u
0052260 t i l i t i e s 032 x 4 e 3 0 k 7
0052300 9 2 \ b \r T h i s s e c t i o
0052320 n d e s c r i b e s t h e
0052340 b a s i c t h i n g s t h a
0052360 t c l i e n t p r o g r a m
0052400 s c a n d o t o p a c k
0052420 e t s a n d / o r b u f f e
0052440 r s . T h e y w i l l b
0052460 e u s e d b y c l i e n t
0052500 p r o g r a m s t h a t i
0052520 n t e r f a c e a t t h e
0052540 S o c k e t l e v e l . 032 x 4
0052560 e 2 0 j k 6 2 \r W e h a v e
0052600 a d o p t e d t h e c o n v
0052620 e n t i o n t h a t f i e l
0052640 d s i n t h e b u f f e r
0052660 t h a t c a n b e s i m
0052700 p l y r e a d / w r i t t e n
0052720 b y c l i e n t p r o g r
0052740 a m s s h o u l d b e a c
0052760 c e s s e d d i r e c t l y
0053000 f o r e f f i c i e n c y .
0053020 S u c h f i e l d s i n c
0053040 l u d e t h e p u p T y p e
0053060 , t h e s o u r c e a n d
0053100 d e s t i n a t i o n P u p
0053120 A d d r e s s e s , a n d t
0053140 h e d a t a . A P u p B
0053160 u f f e r i s a n O V E R
0053200 L A I D R E C O R D , s o
0053220 y o u c a n a c c e s s t
0053240 h e d a t a p o r t i o n
0053260 o f i t a s b . p u p B y
0053300 t e s [ i ] ( a P A C K E D
0053320 A R R A Y O F B y t e s )
0053340 , b . p u p C h a r s [ i ]
0053360 ( a P A C K E D A R R A Y
0053400 O F C H A R A C T E R s ) o
0053420 r b . p u p W o r d s [ i ]
0053440 ( a n A R R A Y O F W O R
0053460 D s ) . I f y o u r d a
0053500 t a i s a R E C O R D (
0053520 a v e r y g o o d i d e a
0053540 ) y o u c a n L O O P H O
0053560 L E a P O I N T E R t o
0053600 y o u r r e c o r d t o b
0053620 e @ b . p u p B o d y . W
0053640 e h a v e a l s o p r o v
0053660 i d e d a p a i r o f s
0053700 i m p l e r o u t i n e s t
0053720 o a c c e s s t h e o t h
0053740 e r i n t e r e s t i n g f
0053760 i e l d - t h e l e n g t
0054000 h . 032 x 4 e 2 0 j k 6 2 \ 1 7 7
0054020 f 6 b 7 f 0 B 6 f 6 b 6 f 0 B 5
0054040 f 6 b 1 1 f 0 B 1 f 6 b 1 0 f 0
0054060 B 2 1 f 6 b 9 f 0 B 7 f 7 b 1 5
0054100 f 0 B 4 6 f 6 b 1 3 f 0 B 4 f 7
0054120 b 1 2 f 0 B 1 f 7 b 2 f 6 5 f
0054140 0 B 4 f 6 b 1 3 f 0 B 4 f 7 b 1
0054160 2 f 0 B 1 f 7 b 2 f 6 1 f 7
0054200 9 f 0 B 6 f 6 b 1 3 f 0 B 5 f 7
0054220 b 1 3 f 0 B 2 3 f 7 b 6 f 0 B 2
0054240 8 f 7 b 8 f 0 B 3 f 7 b 7 f 0 B
0054260 2 2 f 6 b 1 0 f 0 B \r S e t P u
0054300 p C o n t e n t s B y t e s :
0054320 P R O C E D U R E [ P u p B u
0054340 f f e r , C A R D I N A L ] ;
0054360 032 l 4 6 4 0 d 4 2 6 8 x 4 e 1 2
0054400 k 5 4 \ f 6 b 2 1 f 7 9 f 6
0054420 1 3 f 7 8 f 6 \r S e t P u p C
0054440 o n t e n t s W o r d s : P R
0054460 O C E D U R E [ P u p B u f f
0054500 e r , C A R D I N A L ] ; 032 l
0054520 4 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f
0054540 6 b 2 1 f 7 9 f 6 1 3 f 7
0054560 8 f 6 \r G e t P u p C o n t e n
0054600 t s B y t e s : P R O C E D U
0054620 R E [ P u p B u f f e r ] R
0054640 E T U R N S [ C A R D I N A L
0054660 ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4 k
0054700 5 4 \ f 6 b 2 1 f 7 9 f 6 1
0054720 3 f 7 7 f 6 2 f 7 8 f 6 \r
0054740 D a t a W o r d s P e r P u p B
0054760 u f f e r : P R O C E D U R E
0055000 R E T U R N S [ C A R D I N
0055020 A L ] ; 032 l 4 6 4 0 d 4 2 6 8 x
0055040 4 k 5 4 \ f 6 b 2 3 f 7 9 f 6
0055060 1 f 7 7 f 6 2 f 7 8 f 6
0055100 \r T h e r e a r e t w o l
0055120 e n g t h s i n v o l v e d
0055140 h e r e . p u p L e n g t h
0055160 i s t h e t o t a l l e
0055200 n g t h o f t h e p u p
0055220 i n b y t e s , n o t w o
0055240 r d s , a n d e x i s t s
0055260 a s a f i e l d i n t h
0055300 e p a c k e t . T h e c
0055320 o n t e n t s l e n g t h i
0055340 n c l u d e s o n l y t h e
0055360 t e x t s u p p l i e d b
0055400 y t h e u s e r . T o d
0055420 a y , p u p L e n g t h i s
0055440 t h e c o n t e n t s l e
0055460 n g t h p l u s 2 2 . B
0055500 e s u r e n o t t o o v
0055520 e r f i l l a b u f f e r
0055540 - - y o u w i l l c l o b
0055560 b e r t h e h e a d e r o
0055600 f t h e n e x t b u f f e
0055620 r . D a t a W o r d s P e r
0055640 P u p B u f f e r c a n b e
0055660 u s e d t o d e t e r m i
0055700 n e t h e m a x i m u m n
0055720 u m b e r o f w o r d s t
0055740 h a t w i l l f i t i n
0055760 t h e b o d y o f a P u
0056000 p . T h e r e i s n o
0056020 G e t P u p C o n t e n t s W o
0056040 r d s b e c a u s e I c o
0056060 u l d n ' t t h i n k o f
0056100 a n y t h i n g r e a s o n a
0056120 b l e t o d o i f t h e
0056140 r e w a s a n o d d n u
0056160 m b e r o f d a t a b y t
0056200 e s i n t h e P u p . 032 x
0056220 4 e 1 2 j k 5 4 \ 3 8 f 6 b 9 f
0056240 0 B 3 1 i 2 0 I 1 1 3 f 6 b 9 f
0056260 0 B 1 1 9 f 6 b 2 1 f 0 B 1 0 3
0056300 f 6 b 1 9 f 0 B \r F i n e p o
0056320 i n t : I f s o m e b o d
0056340 y i s p l a y i n g w i t
0056360 h l a r g e b u f f e r s ,
0056400 a n d y o u e x p e c t
0056420 y o u r p a c k e t s t o
0056440 b e f o r w a r d e d b y
0056460 a g a t e w a y , b e s u
0056500 r e t o r o u n d d o w n
0056520 t o 2 6 6 w o r d s ( P
0056540 u p D e f s . m a x D a t a W o
0056560 r d s P e r G a t e w a y P u p
0056600 ) b e f o r e d e c i d i n
0056620 g h o w f u l l y o u c
0056640 a n f i l l a b u f f e r
0056660 . 032 x 4 e 2 0 j k 6 2 \ f 1 1
0056700 5 0 f 7 b 3 3 f 1 B \r R e t u r
0056720 n F r e e P u p B u f f e r :
0056740 P R O C E D U R E [ P u p B u
0056760 f f e r ] ; 032 l 4 6 4 0 d 4 2 6
0057000 8 x 4 e 1 2 k 5 4 \ f 6 b 2 1 f
0057020 7 9 f 6 \r G e t F r e e P u p
0057040 B u f f e r : P R O C E D U R
0057060 E R E T U R N S [ P u p B u
0057100 f f e r ] ; 032 l 4 6 4 0 d 4 2 6
0057120 8 x 4 k 5 4 \ f 6 b 1 8 f 7 9
0057140 f 6 1 f 7 7 f 6 \r R e t u r
0057160 n F r e e P u p B u f f e r i
0057200 s u s e d t o p u t a
0057220 b u f f e r b a c k o n t
0057240 h e f r e e Q u e u e . I
0057260 t m u s t b e c a l l e d
0057300 t o r e t u r n t h e b
0057320 u f f e r s o b t a i n e d
0057340 f r o m s o c k e t . g e t .
0057360 G e t F r e e P u p B u f f
0057400 e r o b t a i n s o n e b
0057420 u f f e r f r o m t h e f
0057440 r e e Q u e u e . I t w i
0057460 l l w a i t i f t h e r e
0057500 i s n o t a b u f f e r
0057520 c u r r e n t l y a v a i l
0057540 a b l e . T h i s i s h
0057560 o w a c l i e n t p r o g
0057600 r a m g e t s a b u f f e
0057620 r t o g i v e t o s o c
0057640 k e t . p u t . 032 x 4 e 1 2 j k
0057660 5 4 \ f 6 b 1 9 f 0 B 3 7 f 6 b
0057700 9 f 0 B 5 7 f 6 b 1 0 f 0 B 3 f
0057720 6 b 1 6 f 0 B 2 9 f 6 b 9 f 0 B
0057740 1 1 7 f 6 b 1 0 f 0 B \r T h e
0057760 P u p P a c k a g e b u i l
0060000 d s ( a t P u p P a c k a g
0060020 e M a k e t i m e ) a p o
0060040 o l o f 1 5 b u f f e r s
0060060 . T h e E t h e r n e t
0060100 d r i v e r u s e s t w o
0060120 a n d G e t F r e e P u p B u
0060140 f f e r a l w a y s l e a v
0060160 e s t w o i n r e s e r v
0060200 e , s o t h e r e a r e
0060220 r e a l l y o n l y 1 1 l
0060240 e f t f o r a l l t h e
0060260 a c t i v e u s e r s t o
0060300 s h a r e . P u p b y t e
0060320 s t r e a m s a l l o c a t
0060340 e a d e f a u l t o f f
0060360 i v e p a c k e t s , s o
0060400 l o c k u p s a r e e a s i
0060420 l y p o s s i b l e i f y
0060440 o u h a v e s e v e r a l
0060460 a c t i v e s t r e a m s .
0060500 N o t e t h a t e a c h
0060520 a c t i v e h a l f o f a
0060540 s t r e a m c a n u s e
0060560 u p t o 6 b u f f e r s .
0060600 032 x 4 e 1 2 j k 5 4 \ 2 7 f 6 b
0060620 1 4 f 0 B 6 3 f 6 b 1 6 f 0 B \r
0060640 S w a p P u p S o u r c e A n d
0060660 D e s t : P R O C E D U R E
0060700 [ P u p B u f f e r ] ; 032 l 4 6
0060720 4 0 d 4 2 6 8 x 4 e 1 2 k 5 4 \
0060740 f 6 b 2 2 f 7 9 f 6 \r S w a p
0060760 P u p S o u r c e A n d D e s t
0061000 e x c h a n g e s t h e s
0061020 o u r c e a n d d e s t f
0061040 i e l d s o f t h e P u p
0061060 B u f f e r . I t f i x e
0061100 s u p t h e n e w d e s
0061120 t i n a t i o n i f t h e
0061140 o l d d e s t i n a t i o n
0061160 P u p w a s b r o a d c a s
0061200 t . O f c o u r s e , i
0061220 t o n l y m a k e s s e n
0061240 s e i f t h e b u f f e r
0061260 c o n t a i n s a p a c k
0061300 e t t h a t w a s t r a n
0061320 s m i t t e d f r o m s o m
0061340 e ( p r o b a b l y d i f f
0061360 e r e n t ) m a c h i n e . 032
0061400 x 4 e 1 2 j k 5 4 \ f 6 b 2 0 f
0061420 0 B 1 5 f 6 b 6 f 0 B 5 f 6 b 4
0061440 f 0 B \r M o v e S t r i n g B o
0061460 d y T o P u p B u f f e r : P
0061500 R O C E D U R E [ P u p B u f
0061520 f e r , S T R I N G ] ; 032 l 4
0061540 6 4 0 d 4 2 6 8 x 4 e 1 2 k 5 4
0061560 \ f 6 b 2 7 f 7 9 f 6 1 3 f
0061600 7 6 f 6 \r A p p e n d S t r i
0061620 n g B o d y T o P u p B u f f e
0061640 r : P R O C E D U R E [ P u
0061660 p B u f f e r , S T R I N G ]
0061700 ; 032 l 4 6 4 0 d 4 2 6 8 x 4 k 5
0061720 4 \ f 6 b 2 9 f 7 9 f 6 1 3
0061740 f 7 6 f 6 \r M o v e S t r i n
0061760 g B o d y T o P u p B u f f e r
0062000 c o p i e s t h e c o n t
0062020 e n t s o f t h e S T R I
0062040 N G i n t o t h e b o d y
0062060 o f t h e P u p B u f f e
0062100 r a n d s e t s t h e l
0062120 e n g t h a c c o r d i n g l
0062140 y . I t i s h a n d y
0062160 f o r v e r y s i m p l e
0062200 p r o t o c o l s a n d i s
0062220 u s e d b y P u p N a m e
0062240 L o o k u p . A p p e n d S t
0062260 r i n g B o d y T o P u p B u f
0062300 f e r a p p e n d s t h e
0062320 c o n t e n t s o f t h e
0062340 S T R I N G i n t o t h e
0062360 b o d y o f t h e P u p B
0062400 u f f e r a n d a d j u s t
0062420 s t h e l e n g t h a c c
0062440 o r d i n g l y . B o t h
0062460 r o u t i n e s w i l l c a
0062500 l l G l i t c h i f t h e
0062520 S T R I N G i s N I L o
0062540 r i t w o n ' t f i t i
0062560 n t h e b u f f e r . 032 x 4
0062600 e 1 2 j k 5 4 \ f 6 b 2 5 f 0 B
0062620 2 8 f 7 b 6 f 0 B 2 2 f 6 b 9 f
0062640 0 B 8 8 f 6 b 1 3 f 0 B 2 f 6 b
0062660 2 7 f 0 B 2 9 f 7 b 6 f 0 B 2 2
0062700 f 6 b 9 f 0 B 6 2 f 6 b 6 f 0 B
0062720 8 f 7 b 6 f 0 B 4 f 7 b 3 f 0 B
0062740 \r S o c k e t i n t e r f a c
0062760 e 032 x 4 e 3 0 k 7 9 2 \ b \r T h
0063000 e l o w e s t l e v e l o
0063020 f t h e P u p P a c k a g
0063040 e a c c e s s i b l e t o
0063060 t h e u s e r i s t h e
0063100 S o c k e t i n t e r f a c e
0063120 . A t t h i s l e v e l
0063140 p a c k e t s a r e d e l
0063160 i v e r e d o n l y w i t h
0063200 s o m e r e a s o n a b l e
0063220 p r o b a b i l i t y , a n
0063240 d t h e r e i s n o g u
0063260 a r a n t e e t h a t t h e
0063300 y w i l l n o t a r r i v
0063320 e o u t o f o r d e r o
0063340 r e v e n t w i c e . T
0063360 h e f u n c t i o n s p e r
0063400 f o r m e d a t t h i s l
0063420 e v e l h a v e t o d o
0063440 o n l y w i t h d e l i v e
0063460 r y . T h e r e i s s t
0063500 i l l t h e i d e a o f
0063520 l o c a l 341 n d r e m o t e
0063540 a d d r e s s e s , a n d
0063560 t h e r e i s a r o u t i
0063600 n g f u n c t i o n w h i c
0063620 h d e c i d e s w h a t t
0063640 o d o w i t h t h e p a
0063660 c k e t s d e p e n d i n g
0063700 o n t h o s e a d d r e s s
0063720 e s . T h e s o c k e t
0063740 i s b a s i c a l l y a n
0063760 i n t e r f a c e t o t h a
0064000 t r o u t i n g f u n c t i
0064020 o n , w h i c h m a k e s
0064040 i t s n a m e k n o w n i
0064060 n t h e a p p r o p r i a t
0064100 e t a b l e s a n d a l l
0064120 o w s m u l t i p l e u s e
0064140 r s t o c o e x i s t i n
0064160 t h e s a m e m a c h i n
0064200 e . 032 x 4 e 2 0 j k 6 2 \r P u p
0064220 S o c k e t : T Y P E = P
0064240 O I N T E R T O P u p S o c
0064260 k e t O b j e c t ; 032 l 4 6 4 0
0064300 d 4 2 6 8 x 4 e 1 2 k 5 4 \ f 6
0064320 b 1 1 f 7 1 7 f 6 \r P u p S o
0064340 c k e t O b j e c t : T Y P E
0064360 = R E C O R D [ \r p u t :
0064400 P R O C D U R E [ P u p B u
0064420 f f e r ] , \r g e t : P R O C
0064440 D U R E R E T U R N S [ P u
0064460 p B u f f e r ] , \r s e t R e m
0064500 o t e A d d r e s s : P R O C
0064520 D U R E [ P u p A d d r e s s
0064540 ] , \r g e t L o c a l A d d r e
0064560 s s : P R O C D U R E R E T
0064600 U R N S [ P u p A d d r e s s
0064620 ] ] ; 032 l 4 6 4 0 d 4 2 6 8
0064640 x 4 k 5 4 \ f 6 b 1 7 f 7 1 3
0064660 f 6 8 f 7 8 f 6 1 9 f 7
0064700 1 6 f 6 3 2 f 7 8 f 6 3 2
0064720 f 7 1 6 f 6 \r T h e S o c k
0064740 e t O p e r a t i o n s a r
0064760 e : 032 x 4 e 1 2 j k 5 4 \r P u p
0065000 S o c k e t M a k e : P R O C
0065020 E D U R E [ \r l o c a l : P
0065040 u p S o c k e t I D , r e m o
0065060 t e : P u p A d d r e s s ,
0065100 t i c k s : T o c k s ] \r R E
0065120 T U R N S [ P u p S o c k e t
0065140 ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4 e
0065160 1 2 k 5 4 \ f 6 b 1 5 f 7 9 f
0065200 6 5 7 f 7 7 f 6 \r T o c k s
0065220 : T Y P E = R E C O R D
0065240 [ C A R D I N A L ] ; 032 l 4 6 4
0065260 0 d 4 2 6 8 x 4 k 5 4 \ f 6 b 6
0065300 f 7 1 4 f 6 2 f 7 8 f 6 \r
0065320 P u p S o c k e t M a k e c r
0065340 e a t e s t h e d a t a s
0065360 t r u c t u r e s n e c e s s
0065400 a r y t o c o m m u n i c a
0065420 t e t o t h e s p e c i f
0065440 i e d d e s t i n a t i o n .
0065460 I t i n i t i a t e s n
0065500 o a c t u a l c o m m u n i
0065520 c a t i o n s . I f f i l
0065540 l I n S o c k e t I D i s s
0065560 p e c i f i e d f o r t h e
0065600 l o c a l s o c k e t n u
0065620 m b e r , a p s e u d o u
0065640 n i q u e r a n d o m s o c
0065660 k e t n u m b e r w i l l
0065700 b e a s s i g n e d . 032 x 4 e
0065720 1 2 j k 5 4 \ f 6 b 1 3 f 0 B 1
0065740 2 8 f 6 b 1 4 f 0 B \r P u p S o
0065760 c k e t D e s t r o y : P R O
0066000 C E D U R E [ P u p S o c k e
0066020 t ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0066040 e 1 2 k 5 4 \ f 6 b 1 8 f 7 9
0066060 f 6 \r P u p S o c k e t D e s t
0066100 r o y r e c l a i m s t h e
0066120 d a t a s t r u c t u r e s
0066140 u s e d b y a s o c k e
0066160 t a n d r e m o v e s t h
0066200 e s o c k e t f r o m t h
0066220 e r o u t i n g t a b l e s
0066240 . 032 x 4 e 1 2 j k 5 4 \ f 6 b 1
0066260 6 f 0 B \r s o c k e t . p u t [
0066300 b ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0066320 e 1 2 k 5 4 \ f 6 b 1 1 i 1 I 2
0066340 f 0 B \r s o c k e t . p u t s
0066360 e n d s t h e b u f f e r
0066400 t o t h e p r e v i o u s l
0066420 y s p e c i f i e d d e s t
0066440 i n a t i o n . A n y p r
0066460 o b l e m s e n c o u n t e r
0066500 e d a r e i g n o r e d .
0066520 W h e n t h e b u f f e r
0066540 h a s b e e n s e n t ,
0066560 w h i c h i s n o r m a l l
0066600 y r i g h t a w a y , b u
0066620 t m a y t a k e s e v e r
0066640 a l s e c o n d s , t h e
0066660 c l i e n t ' s r e q u e u e
0066700 p r o c e d u r e i s c a
0066720 l l e d . T h e r e q u e
0066740 u e p r o c e d u r e l i v
0066760 e s i n b . r e q u e u e P
0067000 r o c e d u r e . I t i s
0067020 i n i t i a l i z e d t o
0067040 R e t u r n F r e e P u p B u f
0067060 f f e r b y G e t F r e e P
0067100 u p B u f f e r . I f y o
0067120 u w a n t t o k e e p a
0067140 b u f f e r s o t h a t
0067160 y o u c a n r e t r a n s m
0067200 i t i t ( o r o t h e r w
0067220 i s e r e u s e i t ) y o
0067240 u m u s t s t o r e s o m
0067260 e t h i n g i n t o b . r e
0067300 q u e u e P r o c e d u r e .
0067320 I f y o u d o u s e y
0067340 o u r o w n r e q u e u e
0067360 p r o c e d u r e , b e s u
0067400 r e t h a t t h e b u f f
0067420 e r i s e v e n t u a l l y
0067440 r e t u r n e d v i a R e
0067460 t u r n F r e e P u p B u f f e
0067500 r . 032 x 4 e 1 2 j k 5 4 \ f 6 b
0067520 1 0 f 0 B 2 6 4 f 6 b i 1 f 0 B
0067540 I 1 f 6 b 1 6 f 0 B 2 4 f 6 b 2
0067560 0 f 0 B 4 f 6 b 1 6 f 0 B 1 1 6
0067600 f 6 b i 1 f 0 B I 1 f 6 b 1 6 f
0067620 0 B 9 6 f 6 b 1 9 f 0 B \r P u p
0067640 B u f f e r _ s o c k e t .
0067660 g e t [ ] ; 032 l 4 6 4 0 d 4 2 6
0067700 8 x 4 e 1 2 k 5 4 \ f 6 b i 9 I
0067720 1 6 f 0 B \r s o c k e t . g e t
0067740 r e t u r n s a b u f f e
0067760 r c o n t a i n i n g t h e
0070000 n e x t p a c k e t t h a
0070020 t i s s e n t t o t h e
0070040 s o c k e t ' s l o c a l
0070060 s o c k e t I D . T h e P
0070100 u p P a c k a g e d o e s
0070120 n o t d o a n y f i l t e
0070140 r i n g o n t h e s o u r
0070160 c e a d d r e s s , s o y
0070200 o u w i l l g e t p a c k
0070220 e t s f r o m u n e x p e c
0070240 t e d p l a c e s . W h e
0070260 n y o u a r e f i n i s h
0070300 e d p r o c e s s i n g t h
0070320 e b u f f e r , y o u s h
0070340 o u l d c a l l R e t u r n
0070360 F r e e P u p B u f f f e r .
0070400 I f a p a c k e t d o e
0070420 s n o t a r r i v e b e f
0070440 o r e t h e s p e c i f i e
0070460 d t i m e o u t , N I L i
0070500 s r e t u r n e d i n s t e
0070520 a d . N o t e t h a t t
0070540 h e P u p m a y h a v e
0070560 c o m e f r o m a n y w h e
0070600 r e , t h e r e m o t e a
0070620 d d r e s s i s o n l y u
0070640 s e d f o r s e n d i n g .
0070660 I f y o u c a r e , y
0070700 o u s h o u l d c h e c k
0070720 t h e s o u r c e o f t h
0070740 e P u p . 032 x 4 e 1 2 j k 5 4
0070760 \ f 6 b 1 0 f 0 B 2 6 6 f 6 b 2
0071000 0 f 0 B 6 1 f 7 b 3 f 0 B \r s o
0071020 c k e t . s e t R e m o t e A d
0071040 d r e s s [ P u p A d d r e s s
0071060 ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4 e
0071100 1 2 k 5 4 \ f 6 b 2 4 i 1 0 I 2
0071120 f 0 B \r s o c k e t . s e t R e
0071140 m o t e A d d r e s s c h a n
0071160 g e s t h e d e s t i n a t
0071200 i o n u s e d b y s o c k
0071220 e t . p u t . U n t i l i
0071240 t i s c h a n g e d a g a
0071260 i n , a l l P u p s s e n
0071300 d v i a s o c k e t . p u t
0071320 w i l l g o t o t h e
0071340 s p e c i f i e d a d d r e s
0071360 s . 032 x 4 e 1 2 j k 5 4 \ f 6 b
0071400 2 3 f 0 B 3 3 f 6 b 1 0 f 0 B 4
0071420 8 f 6 b 1 0 f 0 B \r P u p A d d
0071440 r e s s _ s o c k e t . g e
0071460 t L o c a l A d d r e s s [ ] ;
0071500 032 l 4 6 4 0 d 4 2 6 8 x 4 e 1 2
0071520 k 5 4 \ f 6 b i 1 0 I 2 8 f 0 B
0071540 \r s o c k e t . g e t L o c a l
0071560 A d d r e s s r e t u r n s
0071600 t h e l o c a l a d d r e s
0071620 s o f a s o c k e t .
0071640 T h i s t e l l s y o u t
0071660 w o t h i n g s . O n e ,
0071700 i f y o u u s e d f i l
0071720 l I n S o c k e t I D f o r
0071740 t h e l o c a l s o c k e t
0071760 n u m b e r w h e n y o u
0072000 c r e a t e d t h e s o c
0072020 k e t , i t w i l l t e l
0072040 l y o u t h e a c t u a l
0072060 s o c k e t n u m b e r t
0072100 h a t i s i n u s e .
0072120 S e c o n d , i f y o u h
0072140 a v e m o r e t h a n o n
0072160 e h a r d w a r e i n t e r
0072200 f a c e o n y o u r m a c
0072220 h i n e , i t w i l l t e
0072240 l l y o u w h i c h o n e
0072260 i s t h e b e s t p a t
0072300 h . 032 x 4 e 1 2 j k 5 4 \ f 6 b
0072320 2 2 f 0 B 8 6 f 6 b 1 4 f 0 B \r
0072340 T h e n o r m a l s e q u e
0072360 n c e o f o p e r a t i o n
0072400 s i s t o m a k e a s
0072420 o c k e t a n d t h e n ,
0072440 e n t e r a l o o p t h a
0072460 t g e t s a P u p B u f f
0072500 e r f r o m t h e f r e e
0072520 Q u e u e , f i l l s i t
0072540 i n , s e n d s i t , w a
0072560 i t s f o r a r e p l y ,
0072600 p r o c e s s e s t h e i
0072620 n c o m i n g P u p B u f f e
0072640 r , a n d r e t u r n s i
0072660 t t o t h e f r e e Q u e
0072700 u e . F i n a l l y , w h
0072720 e n f i n i s h e d , d o n
0072740 ' t f o r g e t t o d e l
0072760 e t e t h e s o c k e t .
0073000 I t i s q u i t e r e a
0073020 s o n a b l e t o h a v e
0073040 t w o P R O C E S S e s , o
0073060 n e t o l o o k a t i n
0073100 c o m i n g p a c k e t s a
0073120 n d a n o t h e r t o s e
0073140 n d t h i n g s o u t .
0073160 E v e n i f y o u d o n '
0073200 t e x p e c t a n y i n c
0073220 o m i n g d a t a , b e s
0073240 u r e t o h a v e s o m e
0073260 P R O C E S S g e t t i n g
0073300 p a c k e t s o c c a s s i
0073320 o n a l l y o r b u f f e r
0073340 s w i l l p i l e u p t
0073360 h e r e i f a n y b o d y
0073400 e v e r d o e s s e n d y
0073420 o u s o m e t h i n g . I
0073440 t i s q u i t e l i k e l
0073460 y t h a t e r r o r p u p
0073500 s w i l l b e r e t u r n
0073520 e d i f a G a t e w a y
0073540 r u n s o u t o f b u f f
0073560 e r s , o r t h e o t h e
0073600 r e n d e v e r g e t s
0073620 c o n f u s e d , r e b o o t
0073640 e d , o r . . . . 032 x 4 e 1
0073660 2 j k 5 4 \ 8 9 f 6 b 9 f 0 B 1
0073700 0 f 6 b 9 f 0 B 6 7 f 6 b 9 f 0
0073720 B 2 4 f 6 b 9 f 0 B 9 8 f 7 b 7
0073740 f 0 B 1 3 4 f 7 b 7 f 0 B \r T h
0073760 e r e a r e t w o o t h e
0074000 r r o u t i n e s t h a t
0074020 a r e u s e f u l f o r s
0074040 e n d i n g P u p s . I n
0074060 b o t h c a s e s t h e
0074100 c l i e n t p r o g r a m m
0074120 u s t f i l l i n t h e
0074140 s o u r c e a n d d e s t i
0074160 n a t i o n s o c k e t n u
0074200 m b e r s . 032 x 4 e 1 2 j k 5 4
0074220 \r P u p R o u t e r B r o a d c
0074240 a s t T h i s : P R O C E D U
0074260 R E [ P u p B u f f e r ] ; 032
0074300 l 4 6 4 0 d 4 2 6 8 x 4 e 1 2 k
0074320 5 4 \ f 6 b 2 4 f 7 9 f 6 \r P
0074340 u p R o u t e r S e n d T h i s
0074360 : P R O C E D U R E [ P u p
0074400 B u f f e r ] ; 032 l 4 6 4 0 d 4
0074420 2 6 8 x 4 k 5 4 \ f 6 b 1 9 f 7
0074440 9 f 6 \r P u p R o u t e r B r
0074460 o a d c a s t T h i s w i l l
0074500 b r o a d c a s t a P u p
0074520 o n a l l d i r e c t l y
0074540 c o n n e c t e d n e t w o
0074560 r k s . T h e P u p P a
0074600 c k a g e w i l l p r o v i
0074620 d e t h e c o r r e c t d
0074640 e s t i n a t i o n n e t ,
0074660 s o u r c e h o s t , a n d
0074700 s o u r c e n e t n u m b
0074720 e r s f o r e a c h n e t
0074740 w o r k a s t h e P u p
0074760 i s t r a n s m i t t e d . 032
0075000 x 4 e 1 2 j k 5 4 \ f 6 b 2 2 f
0075020 0 B \r N B : D o n o t u
0075040 s e t h e b r o a d c a s t
0075060 f a c i l i t y i n d i s c
0075100 r i m i n a t e l y . R a n
0075120 d o m u n d e s i r e d p a
0075140 c k e t s c a n h a v e a
0075160 s e v e r e p e r f o r m a
0075200 n c e i m p a c t o n s o
0075220 m e p r o g r a m s . I n
0075240 g e n e r a l , i t s h o
0075260 u l d o n l y b e u s e d
0075300 t o l o c a t e a m a c
0075320 h i n e t h a t y o u w a
0075340 n t t o c o m u n i c a t e
0075360 w i t h . 032 x 4 e 1 2 j k 5 4
0075400 \ b 3 B \r P u p R o u t e r S e
0075420 n d T h i s i s t h e s i
0075440 m p l e s t w a y t o s e
0075460 n d a p a c k e t . D o
0075500 n ' t f o r g e t t o f i
0075520 l l i n t h e s o u r c e
0075540 s o c k e t , d e s t i n a
0075560 t i o n a d d r e s s , p u
0075600 p T y p e a n d s e t t h
0075620 e l e n g t h . T h e P
0075640 u p P a c k a g e w i l l
0075660 f i l l i n t h e c o r r
0075700 e c t s o u r c e n e t a
0075720 n d h o s t n u m b e r s .
0075740 T h e r e i s a s p e
0075760 c i a l c a s e c h e c k
0076000 f o r a d e s t i n a t i o
0076020 n h o s t o f a l l H o s
0076040 t s ( 0 ) a n d a d e s
0076060 t i n a t i o n n e t o f
0076100 a l l N e t s ( 0 ) . I f
0076120 s o , t h e b u f f e r
0076140 i s h a n d e d o f f t o
0076160 P u p R o u t e r B r o a d c
0076200 a s t T h i s . I f y o u
0076220 s p e c i f y a l l H o s t
0076240 s a n d a n o n 0 n e
0076260 t w o r k , t h e P u p i
0076300 s a d i r e c t e d b r o
0076320 a d c a s t , a n d i t w
0076340 i l l b e b r o a d c a s t
0076360 o n t h a t s p e c i f
0076400 i c n e t w o r k , a n d
0076420 n o t o n a l l d i r e c
0076440 t l y c o n n e c t e d n e
0076460 t w o r k s . T h e r e i
0076500 s n o w a y t o b r o a
0076520 d c a s t a P u p o n n
0076540 e t w o r k 0 w i t h o u t
0076560 b r o a d c a s t i n g i t
0076600 o n t h e o t h e r n e
0076620 t w o r k s t o o . 032 x 4 e 1
0076640 2 j k 5 4 \ f 6 b 1 7 f 0 B 2 6
0076660 0 f 6 b 8 f 0 B 3 0 f 6 b 7 f 0
0076700 B 4 2 f 6 b 2 2 f 0 B 1 8 f 6 b
0076720 8 f 0 B \r S e n d P u p : P R
0076740 O C E D U R E [ b : P u p B
0076760 u f f e r , t y p e : P u p
0077000 T y p e , b y t e s : C A R
0077020 D I N A L ] ; 032 l 4 6 4 0 d 4 2
0077040 6 8 x 4 e 1 2 k 5 4 \ f 6 b 9 f
0077060 7 9 f 6 3 8 f 7 8 f 6 \r R
0077100 e t u r n P u p : P R O C E D
0077120 U R E [ b : P u p B u f f e
0077140 r , t y p e : P u p T y p e
0077160 , b y t e s : C A R D I N A
0077200 L ] ; 032 l 4 6 4 0 d 4 2 6 8 x 4
0077220 k 5 4 \ f 6 b 1 1 f 7 9 f 6
0077240 3 8 f 7 8 f 6 \r S e n d P u p
0077260 f i l l s i n t h e p u
0077300 p T y p e a n d t h e l e
0077320 n g t h o f t h e b u f f
0077340 e r , a n d t h e n c a l
0077360 l s P u p R o u t e r S e n d
0077400 T h i s . R e t u r n P u p
0077420 c a l l s S w a p P u p S o
0077440 u r c e A n d D e s t a n d
0077460 t h e n c a l l s S e n d P
0077500 u p . 032 x 4 e 1 2 j k 5 4 \ f 6
0077520 b 7 f 0 B 6 7 f 6 b 1 7 f 0 B 3
0077540 f 6 b 9 f 0 B 7 f 6 b 2 0 f 0 B
0077560 1 6 f 6 b 7 f 0 B \r S e n d E r
0077600 r o r P u p : P R O C E D U R
0077620 E [ P u p B u f f e r , P u
0077640 p E r r o r C o d e , S T R I
0077660 N G ] ; 032 l 4 6 4 0 d 4 2 6 8 x
0077700 4 e 1 2 k 5 4 \ f 6 b 1 4 f 7
0077720 9 f 6 2 7 f 7 7 f 6 \r S e n
0077740 d E r r o r P u p t r e a t s
0077760 t h e b u f f e r a s a
0100000 P u p t h a t w a s s e
0100020 n t t o t h i s m a c h i
0100040 n e , c o n v e r t s i t
0100060 i n t o a n E r r o r P u
0100100 p w i t h t h e s p e c i
0100120 f i e d e r r o r c o d e
0100140 a n d t e x t , a n d s e
0100160 n d s i t b a c k t o t
0100200 h e o r i g i n a l s o u r
0100220 c e . T h e b u f f e r
0100240 m u s t h a v e b e e n s
0100260 e n t t o t h i s m a c h
0100300 i n e s i n c e S e n d E r
0100320 r o r P u p n e e d s t o
0100340 k n o w t h e n e t w o r k
0100360 a d d r e s s t h r o u g h
0100400 w h i c h t h e p a c k e
0100420 t a r r i v e d , s o d o
0100440 n ' t p a s s i t a b u
0100460 f f e r t h a t y o u o b
0100500 t a i n e d f r o m G e t F
0100520 r e e P u p B u f f e r . I
0100540 f S T R I N G i s N I L ,
0100560 a b u i l t i n l i s t
0100600 o f d e f a u l t s i s
0100620 s e a r c h e d . A c t u a
0100640 l l y , t h e b u f f e r
0100660 i s n ' t s e n t i f i t
0100700 i s a l r e a d y a n e
0100720 r r o r P u p , o r i f
0100740 i t i s a b r o a d c a s
0100760 t P u p . 032 x 4 e 1 2 j k 5 4
0101000 \ f 6 b 1 2 f 0 B 2 2 5 f 6 b 1
0101020 2 f 0 B 1 1 8 f 6 b 1 6 f 0 B 6
0101040 f 7 b 6 f 0 B 4 f 7 b 3 f 0 B \r
0101060 032 \r T o c k c o n v e r s i o
0101100 n 032 x 4 e 3 0 k 7 9 2 \ b \r T h
0101120 e r e a r e s e v e r a l
0101140 r o u t i n e s i n t h e
0101160 P u p P a c k a g e t h a t
0101200 n o r m a l l y W A I T u
0101220 n t i l s o m e t h i n g h
0101240 a s h a p p e n e d . T h
0101260 e a r g u m e n t t o t h
0101300 e r o u t i n e s t h a t
0101320 s e t u p t h e w a i t t
0101340 i m e s i s a s i m p l e
0101360 r e c o r d . 032 x 4 e 2 0 j k
0101400 6 2 \ 6 0 f 7 b 4 f 0 B \r T o c
0101420 k s : T Y P E = R E C O R
0101440 D [ C A R D I N A L ] ; 032 l 4
0101460 6 4 0 d 4 2 6 8 x 4 e 1 2 k 5 4
0101500 \ f 6 b 6 f 7 1 4 f 6 2 f 7
0101520 8 f 6 \r v e r y L o n g W a i
0101540 t : T o c k s = [ 1 7 7 7
0101560 7 7 B ] ; 032 l 5 9 1 0 d 5 5 3 8
0101600 x 4 k 5 4 \ f 6 b 1 3 f 7 1 f
0101620 6 5 f 7 3 f 6 1 f 7 7 f
0101640 6 \r v e r y S h o r t W a i t :
0101660 T o c k s = [ 0 ] ; 032 l 5
0101700 9 1 0 d 5 5 3 8 x 4 k 5 4 \ f 6
0101720 b 1 4 f 7 1 f 6 5 f 7 3 f
0101740 6 1 f 7 1 f 6 \r v e r y L o
0101760 n g W a i t i s u s e d t
0102000 o d i s a b l e t i m e o u
0102020 t s c o m p l e t e l y .
0102040 v e r y S h o r t W a i t i s
0102060 u s e d t o a v o i d w
0102100 a i t i n g a t a l l .
0102120 A l l o t h e r v a l u e s
0102140 a r e p a s s e d d i r e
0102160 c t l y t o P r o c e s s D
0102200 e f s . S e t T i m e o u t . 032
0102220 x 4 e 2 0 j k 6 2 \ f 6 b 1 2 f
0102240 0 B 4 2 f 6 b 1 3 f 0 B 7 5 f 6
0102260 b 2 2 f 0 B \r S e c o n d s T o
0102300 T o c k s : P R O C E D U R E
0102320 [ C A R D I N A L ] R E T U
0102340 R N S [ T o c k s ] ; 032 l 4 6
0102360 4 0 d 4 2 6 8 x 4 e 1 2 k 5 4 \
0102400 f 6 b 1 5 f 7 2 9 f 6 \r M s T
0102420 o T o c k s : P R O C E D U R
0102440 E [ C A R D I N A L ] R E T
0102460 U R N S [ T o c k s ] ; 032 l 4
0102500 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f 6
0102520 b 1 0 f 7 2 9 f 6 \r T h e s e
0102540 r o u t i n e s s i m p l y
0102560 d o a b i t o f a r i
0102600 t h m e t i c a n d t h e
0102620 a p p r o p r i a t e T Y P E
0102640 c o n v e r s i o n . T h
0102660 e i r i n p u t i s i n
0102700 s e c o n d s a n d m i l l
0102720 i s e c o n d s r e s p e c t
0102740 i v e l y . N o t e t h a
0102760 t i t i s n o t p o s s
0103000 i b l e t o s p e c i f y
0103020 w a i t t i m e s l o n g e
0103040 r t h a n a b o u t a m
0103060 i n u t e i n m i l l i s e
0103100 c o n d s . 032 x 4 e 2 0 j k 6 2
0103120 \ 6 5 f 7 b 4 f 0 B \r Q u e u e
0103140 o p e r a t i o n s 032 x 4 e 3
0103160 0 k 7 9 2 \ b \r T h e P u p
0103200 P a c k a g e p r o v i d e s
0103220 a s i m p l e F I F O Q
0103240 u e u e P a c k a g e w h i
0103260 c h m a y b e u s e f u l
0103300 i f y o u a r e o p e r
0103320 a t i n g a t t h e s o c
0103340 k e t l e v e l . N B :
0103360 T h e Q u e u e P a c k a g
0103400 e d o e s n o t p r o v i
0103420 d e a n y l o c k s a g a
0103440 i n s t p r e e m p t i o n .
0103460 T h e c l i e n t i s
0103500 e x p e c t e d t o c a l l
0103520 t h e q u e u e r o u t i
0103540 n e s f r o m w i t h i n
0103560 a n a p p r o p r i a t e M
0103600 O N I T O R . 032 x 4 e 2 0 j k 6
0103620 2 \ 1 4 3 i 3 I 1 1 7 f 7 b 7 f
0103640 0 B \r Q u e u e : T Y P E =
0103660 P O I N T E R T O Q u e u
0103700 e O b j e c t ; 032 l 4 6 4 0 d 4
0103720 2 6 8 x 4 e 1 2 k 5 4 \ f 6 b 7
0103740 f 7 1 7 f 6 \r Q u e u e O b j
0103760 e c t : T Y P E = R E C O
0104000 R D [ l e n g t h : C A R D
0104020 I N A L , . . . ] ; 032 l 4 6 4
0104040 0 d 4 2 6 8 x 4 k 5 4 \ f 6 b 1
0104060 3 f 7 1 3 f 6 1 0 f 7 8 f
0104100 6 \r l e n g t h i s t h e
0104120 n u m b e r o f b u f f e r
0104140 s c u r r e n t l y o n t
0104160 h e q u e u e . I t i s
0104200 h a n d y f o r v a r i o
0104220 u s h e u r i s t i c s .
0104240 I n p a r t i c u l a r , y
0104260 o u m a y w a n t t o c
0104300 h e c k f o r a n e m p t
0104320 y q u e u e b e f o r e c
0104340 a l l i n g D e q u e u e P u
0104360 p i f y o u a r e w o r
0104400 r i e d a b o u t p e r f o
0104420 r m a n c e . 032 x 4 e 1 2 j k 5
0104440 4 \ f 6 b 6 f 0 B 1 5 9 f 6 b 1
0104460 0 f 0 B \r Q u e u e I n i t i a
0104500 l i z e : P R O C E D U R E
0104520 [ Q u e u e ] ; 032 l 4 6 4 0 d 4
0104540 2 6 8 x 4 e 1 2 k 5 4 \ f 6 b 1
0104560 7 f 7 9 f 6 \r Q u e u e C l e
0104600 a n u p : P R O C E D U R E
0104620 [ Q u e u e ] ; 032 l 4 6 4 0 d 4
0104640 2 6 8 x 4 k 5 4 \ f 6 b 1 4 f 7
0104660 9 f 6 \r Q u e u e I n i t i a
0104700 l i z e s i m p l y i n i t
0104720 i a l i z e s t h e d a t a
0104740 s t r u c t u r e s w i t h
0104760 i n a Q u e u e O b j e c t
0105000 a l l o c a t e d b y t h
0105020 e c a l l e r . I t m u
0105040 s t b e c a l l e d b e f
0105060 o r e a n y o t h e r q u
0105100 e u e o p e r a t i o n s r
0105120 e f e r e n c e t h e Q u e
0105140 u e O b j e c t . Q u e u e
0105160 C l e a n u p r e t u r n s
0105200 a n y b u f f e r s o n t
0105220 h e q u e u e t o t h e
0105240 f r e e Q u e u e a n d m a
0105260 r k s i t a s i n v a l i
0105300 d . Y o u m u s t c a l
0105320 l Q u e u e I n i t i a l i z
0105340 e a g a i n b e f o r e r
0105360 e u s i n g t h e q u e u e
0105400 . 032 x 4 e 1 2 j k 5 4 \ f 6 b 1
0105420 5 f 0 B 4 9 f 6 b 1 1 f 0 B 9 3
0105440 f 6 b 1 1 f 0 B 3 f 6 b 1 2 f 0
0105460 B 4 1 f 6 b 9 f 0 B 4 1 f 6 b 1
0105500 5 f 0 B \r E n q u e u e P u p :
0105520 P R O C E D U R E [ Q u e u
0105540 e , P u p B u f f e r ] ; 032 l
0105560 4 6 4 0 d 4 2 6 8 x 4 e 1 2 k 5
0105600 4 \ f 6 b 1 2 f 7 9 f 6 \r D e
0105620 q u e u e P u p : P R O C E D
0105640 U R E [ Q u e u e ] R E T U
0105660 R N S [ P u p B u f f e r ] ;
0105700 032 l 4 6 4 0 d 4 2 6 8 x 4 k 5 4
0105720 \ f 6 b 1 2 f 7 9 f 6 9 f 7
0105740 7 f 6 \r E x t r a c t P u p F
0105760 r o m Q u e u e : P R O C E D
0106000 U R E [ Q u e u e , P u p B
0106020 u f f e r ] R E T U R N S [
0106040 P u p B u f f e r ] ; 032 l 4 6 4
0106060 0 d 4 2 6 8 x 4 k 5 4 \ f 6 b 2
0106100 1 f 7 9 f 6 2 0 f 7 7 f 6
0106120 \r E n q u e u e P u p p u t s
0106140 a P u p B u f f e r o n t
0106160 o t h e t a i l o f a
0106200 q u e u e . D e q u e u e P
0106220 u p t a k e s a P u p B u
0106240 f f e r o f f o f t h e
0106260 h e a d o f a q u e u e .
0106300 I f t h e q u e u e i
0106320 s e m p t y , i t r e t u
0106340 r n s N I L . E x t r a c
0106360 t P u p F r o m Q u e u e p u
0106400 l l s a s p e c i f i e d
0106420 b u f f e r o u t o f t h
0106440 e m i d d l e o f a q u
0106460 e u e . I f t h e b u f
0106500 f e r i s n o t o n t h
0106520 e q u e u e , i t r e t u
0106540 r n s N I L . 032 x 4 e 1 2 j k
0106560 5 4 \ f 6 b 1 0 f 0 B 8 f 6 b 9
0106600 f 0 B 2 8 f 6 b 1 0 f 0 B 9 f 6
0106620 b 9 f 0 B 6 4 f 7 b 3 f 0 B 3 f
0106640 6 b 1 9 f 0 B 1 0 3 f 7 b 3 f 0
0106660 B \r Q u e u e L e n g t h : P
0106700 R O C E D U R E [ Q u e u e ]
0106720 R E T U R N S [ C A R D I N
0106740 A L ] ; 032 l 4 6 4 0 d 4 2 6 8 x
0106760 4 e 1 2 k 5 4 \ f 6 b 1 3 f 7
0107000 9 f 6 9 f 7 7 f 6 2 f 7
0107020 8 f 6 \r Q u e u e E m p t y :
0107040 P R O C E D U R E [ Q u e u e
0107060 ] R E T U R N S [ B O O L E
0107100 A N ] ; 032 l 4 6 4 0 d 4 2 6 8 x
0107120 4 k 5 4 \ f 6 b 1 2 f 7 9 f 6
0107140 9 f 7 7 f 6 2 f 7 7 f 6
0107160 \r T h e s e a r e j u s t
0107200 f a s t , c l e a n , a n d
0107220 s i m p l e w a y s t o
0107240 s e e i f t h e r e i s
0107260 a n y t h i n g i n a Q u
0107300 e u e . 032 x 4 e 1 2 j k 5 4 \ 7
0107320 7 f 6 b 5 f 0 B \r B u g s a n
0107340 d g r e m l i n s 032 x 4 e 3 0
0107360 k 7 9 2 \ b \r N o t e t h a t
0107400 m o s t p r o g r a m b u
0107420 g s d o n o t s h o w u
0107440 p a s u n c a u g h t S I
0107460 G N A L s , b u t i n s t e
0107500 a d c a l l a n e r r o r
0107520 h a n d l e r , w h i c h
0107540 d e f a u l t s t o a r o
0107560 u t i n e t h a t c a l l s
0107600 t h e d e b u g g e r .
0107620 I f y o u s u d d e n l y
0107640 e n d u p i n t h e d e
0107660 b u g g e r w i t h a " P
0107700 u p G l i t c h " m e s s a g
0107720 e , l o o k a t t h e s
0107740 t a c k . I f y o u f i
0107760 n d G l i t c h , l o o k
0110000 a t i t s p a r a m e t e r
0110020 . I f y o u h a v e e
0110040 n o u g h s y m b o l s o n
0110060 y o u r d i s k t h e n
0110100 a m e w i l l u s u a l l y
0110120 b e r e a s o n a b l y c
0110140 l e a r w h a t t h e p r
0110160 o b l e m i s . I f n o
0110200 t , c o n s u l t a f r i
0110220 e n d o r d i g o u t t
0110240 h e l i s t i n g s . G l
0110260 i t c h e s a r e p r o b l
0110300 e m s f r o m w h i c h i
0110320 t i s n o t r e a s o n a
0110340 b l e t o r e c o v e r .
0110360 U s u a l l y , t h e y a
0110400 r e c a u s e d b y b u g
0110420 s i n t h e c l i e n t
0110440 p r o g r a m a n d / o r i
0110460 n a d e q u a t e d o c u m e
0110500 n t a t i o n . I f y o u
0110520 g e t o n e , y o u s h
0110540 o u l d n o t a t t e m p t
0110560 t o c o n t i n u e e x e
0110600 c u t i o n o f y o u r p
0110620 r o g r a m . B e c a u s e
0110640 o f v a r i o u s v a l i
0110660 d i t y c h e c k s i n t
0110700 h e P u p P a c k a g e ,
0110720 c o r e c l o b b e r s f r
0110740 e q u e n t l y s h o w u p
0110760 a s P u p G l i t c h e s
0111000 . 032 x 4 e 2 0 j k 6 2 \ 5 5 f 7
0111020 b 7 f 0 B 1 9 0 f 6 b 6 f 0 B \r
0111040 S i g n a l s 032 x 4 e 3 0 k 6 2
0111060 \ b \r E x c e p t f o r t h
0111100 e E F T P r o u t i n e s ,
0111120 t h e f o l l o w i n g s
0111140 u m m a r y i s a n e x h
0111160 a u s t i v e l i s t o f
0111200 t h e s i g n a l s e x p l
0111220 i c i t l y g e n e r a t e d
0111240 b y t h e P u p P a c k
0111260 a g e . I t d o e s N O
0111300 T i n c l u d e s i g n a l
0111320 s g e n e r a t e d f r o m
0111340 w i t h i n t h e s y s t
0111360 e m w h e n t h e P u p
0111400 P a c k a g e c a l l s a
0111420 s y s t e m r o u t i n e .
0111440 T h e y a l l r e p r e s
0111460 e n t w e l l u n d e r s t
0111500 o o d c i r c u m s t a n c e
0111520 s , a n d e v e n i f y
0111540 o u d i d n ' t w a n t t
0111560 h e s i g n a l a t t h a
0111600 t t i m e , t h e P u p
0111620 P a c k a g e k n o w s w h
0111640 a t i s g o i n g o n a
0111660 n d i s p a s s i n g t h
0111700 e p r o b l e m b a c k t
0111720 o t h e c l i e n t p r o
0111740 g r a m w h e r e i t b e
0111760 l o n g s . 032 x 4 e 2 0 j k 6 2
0112000 \r S t r e a m . T i m e o u t :
0112020 S I G N A L ; 032 l 4 2 6 9 x 4
0112040 e 1 8 k 1 2 2 \ f 6 b 1 6 f 7
0112060 6 f 6 \r S t r e a m . T i m e o
0112100 u t i s g e n e r a t e d
0112120 b y t h e B y t e S t r e a
0112140 m i n p u t r o u t i n e s
0112160 i f e n o u g h d a t a
0112200 d o e s n o t a r r i v e
0112220 i n t i m e . T h e a c
0112240 t u a l w a i t t i m e s
0112260 a r e n o t v e r y a c c
0112300 u r a t e . 032 x 4 e 8 j k 6 2 \
0112320 f 6 b 1 4 f 0 B \r S t r e a m C
0112340 l o s i n g : E R R O R [ w
0112360 h y : C l o s e R e a s o n ,
0112400 t e x t : S T R I N G ] ; 032
0112420 l 4 2 6 9 x 4 e 1 8 k 1 2 2 \ f
0112440 6 b 1 5 f 7 5 f 6 2 6 f 7
0112460 6 f 6 \r C l o s e R e a s o n :
0112500 T Y P E = { l o c a l C l o
0112520 s e , r e m o t e C l o s e ,
0112540 \r t r a n s m i s s i o n T
0112560 i m e o u t , n o R o u t e T
0112600 o N e t w o r k , r e m o t e
0112620 R e j e c t } ; 032 l 4 2 6 9 x 4
0112640 k 1 2 2 \ f 6 b 1 3 f 7 4 f 6
0112660 \r S t r e a m C l o s i n g i
0112700 s g e n e r a t e d b y B
0112720 y t e S t r e a m O p e n w h
0112740 e n t h e r e m o t e s i
0112760 t e e x p l i c i t l y r e
0113000 j e c t s t h e c o n n e c
0113020 t i o n , d o e s n o t a
0113040 c c e p t i t i n t i m e
0113060 , o r t h e r e i s n o
0113100 t a n y w a y t o g e t
0113120 a p a c k e t t o t h e
0113140 r e m o t e s i t e . (
0113160 C u r r e n t l y , t h e t
0113200 i m e o u t i s a b o u t
0113220 6 0 s e c o n d s . ) 032 x 4 e
0113240 8 j k 6 2 \ f 6 b 1 3 f 0 B 1 7
0113260 f 6 b 1 4 f 0 B \r A f t e r a
0113300 s t r e a m i s o p e n e
0113320 d , S t r e a m C l o s i n g
0113340 i s a c t i v a t e d b y
0113360 m a n y B y t e S t r e a m
0113400 r o u t i n e s w h e n e v
0113420 e r a n a t t e m p t t o
0113440 u s e a c o n n e c t i o
0113460 n i s m a d e a f t e r
0113500 t h e P u p P a c k a g e
0113520 c o n n e c t i o n h a s b
0113540 e e n c l o s e d . I t
0113560 m a y b e c l o s e d b y
0113600 t h e r e m o t e e n d ,
0113620 o r a u t o m a t i c a l l
0113640 y b y t h e P u p P a c
0113660 k a g e w h e n i t d i s
0113700 c o v e r s s o m e p r o b
0113720 l e m . T h e c o n n e c
0113740 t i o n i s c l o s e d a
0113760 u t o m a t i c a l l y w h e
0114000 n e v e r t h e r e m o t
0114020 e e n d e x p l i c i t l y
0114040 r e j e c t s a p a c k e
0114060 t ( m a y b e i t h a s
0114100 b e e n r e b o o t e d ) o
0114120 r w h e n e v e r a p a c
0114140 k e t i s n o t a c k n o
0114160 w l e d g e d s o o n e n o
0114200 u g h ( m a y b e i t i s
0114220 i n t h e d e b u g g e r
0114240 ) . O n i n p u t , a l
0114260 l t h e d a t a f r o m
0114300 t h e r e m o t e s i t e
0114320 i s p r o c e s s e d b e f
0114340 o r e a c t i v a t i n g t
0114360 h e S t r e a m C l o s i n g
0114400 E R R O R . 032 x 4 e 8 j k 6 2
0114420 \ 2 6 f 6 b 1 3 f 0 B 5 3 1 f 6
0114440 b 1 3 f 0 B 1 f 7 b 5 f 0 B \r P
0114460 u p N a m e T r o u b l e : E
0114500 R R O R [ e : S T R I N G ,
0114520 c o d e : N a m e L o o k u
0114540 p E r r o r C o d e ] ; 032 l 4 6
0114560 4 0 d 4 2 6 8 x 4 e 2 4 k 5 4 \
0114600 f 6 b 1 6 f 7 5 f 6 5 f 7
0114620 6 f 6 2 9 f 0 B \r N a m e L o
0114640 o k u p E r r o r C o d e : T
0114660 Y P E = { \r n o R o u t e ,
0114700 n o R e s p o n s e , e r r
0114720 o r F r o m S e r v e r } ; 032 l
0114740 4 6 4 0 d 4 2 6 8 x 4 k 5 4 \ f
0114760 6 b \r P u p N a m e T r o u b l
0115000 e i s o n l y g e n e r a
0115020 t e d b y E n u m e r a t e
0115040 P u p A d d r e s s e s a n d
0115060 P u p N a m e L o o k u p a
0115100 n d G e t P u p A d d r e s s
0115120 w h i c h c a l l i t ,
0115140 a n d P u p A d d r e s s L o
0115160 o k u p . T h e r e a r e
0115200 3 r e a s o n s w h y E
0115220 n u m e r a t e P u p A d d r e
0115240 s s e s o r P u p A d d r e
0115260 s s L o o k u p m a y n o t
0115300 b e a b l e t o s u p p
0115320 l y a r e a s o n a b l e
0115340 a n s w e r . I f s o ,
0115360 i t w i l l g e n e r a t e
0115400 t h e E R R O R P u p N a
0115420 m e T r o u b l e w i t h a
0115440 t e x t s t r i n g t h a
0115460 t m i g h t h e l p a p
0115500 e r s o n a n d a n e r r
0115520 o r c o d e t h a t m i g
0115540 h t b e u s e f u l b y
0115560 a p r o g r a m . I n t
0115600 h e f i r s t c a s e , n
0115620 o R o u t e , t h e i n f o
0115640 r m a t i o n w a s r e c e
0115660 i v e d f r o m t h e n a
0115700 m e s e r v e r , b u t t
0115720 h e r e i s n o w a y t
0115740 o g e t t o t h e t a r
0115760 g e t m a c h i n e . I n
0116000 t h e s e c o n d , n o R
0116020 e s p o n s e , n o n a m e
0116040 l o o k u p s e r v e r r
0116060 e s p o n d e d w i t h i n
0116100 a r e a s o n a b l e l e n
0116120 g t h o f t i m e . U n
0116140 f o r t u n a t e l y , t h e
0116160 t h i r d c a s e , e r r
0116200 o r F r o m S e r v e r , d o
0116220 e s n o t h e l p a p r
0116240 o g r a m m u c h . T h e
0116260 p r o t o c o l d o e s n
0116300 o t s u p p l y e r r o r
0116320 c o d e s u s e f u l t o
0116340 p r o g r a m s , b u t t h
0116360 e d e s i r e d i n f o r m
0116400 a t i o n i s p r o b a b l
0116420 y i n t h e t e x t s t
0116440 r i n g . 032 x 4 e 6 j k 5 4 \ f
0116460 6 b 1 4 f 0 B 2 2 f 6 b 2 1 f 0
0116500 B 5 f 6 b 1 3 f 0 B 5 f 6 b 1 3
0116520 f 0 B 1 4 f 6 6 b 1 6 f 0 B 2
0116540 7 f 6 b 2 1 B 4 b 1 6 f 0 B 7 7
0116560 f 7 b 5 f 0 B 1 f 6 b 1 4 f 0 B
0116600 1 1 8 f 6 b 7 f 0 B 1 1 9 f 6 b
0116620 1 0 f 0 B 1 0 2 f 6 b 1 5 f 0 B
0116640 \r
0116641