Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
ccb5ec62
Kaydet (Commit)
ccb5ec62
authored
Ara 24, 1997
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added expect() method which takes a list of regular expressions and an
optional timeout. Also moved some imports around.
üst
00f9fea2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
2 deletions
+52
-2
telnetlib.py
Lib/telnetlib.py
+52
-2
No files found.
Lib/telnetlib.py
Dosyayı görüntüle @
ccb5ec62
...
@@ -30,11 +30,14 @@ Bugs:
...
@@ -30,11 +30,14 @@ Bugs:
To do:
To do:
- option negotiation
- option negotiation
- timeout should be intrinsic to the connection object instead of an
option on one of the read calls only
"""
"""
# Imported modules
# Imported modules
import
sys
import
socket
import
socket
import
select
import
select
import
string
import
string
...
@@ -371,7 +374,6 @@ class Telnet:
...
@@ -371,7 +374,6 @@ class Telnet:
def
interact
(
self
):
def
interact
(
self
):
"""Interaction function, emulates a very dumb telnet client."""
"""Interaction function, emulates a very dumb telnet client."""
import
sys
,
select
while
1
:
while
1
:
rfd
,
wfd
,
xfd
=
select
.
select
([
self
,
sys
.
stdin
],
[],
[])
rfd
,
wfd
,
xfd
=
select
.
select
([
self
,
sys
.
stdin
],
[],
[])
if
sys
.
stdin
in
rfd
:
if
sys
.
stdin
in
rfd
:
...
@@ -388,6 +390,55 @@ class Telnet:
...
@@ -388,6 +390,55 @@ class Telnet:
sys
.
stdout
.
flush
()
sys
.
stdout
.
flush
()
self
.
close
()
self
.
close
()
def
expect
(
self
,
list
,
timeout
=
None
):
"""Read until one from a list of a regular expressions matches.
The first argument is a list of regular expressions, either
compiled (re.RegexObject instances) or uncompiled (strings).
The optional second argument is a timeout, in seconds; default
is no timeout.
Return a tuple of three items: the index in the list of the
first regular expression that matches; the match object
returned; and the text read up till and including the match.
If EOF is read and no text was read, raise EOFError.
Otherwise, when nothing matches, return (-1, None, text) where
text is the text received so far (may be the empty string if a
timeout happened).
If a regular expression ends with a greedy match (e.g. '.*')
or if more than one expression can match the same input, the
results are undeterministic, and may depend on the I/O timing.
"""
re
=
None
list
=
list
[:]
indices
=
range
(
len
(
list
))
for
i
in
indices
:
if
not
hasattr
(
list
[
i
],
"search"
):
if
not
re
:
import
re
list
[
i
]
=
re
.
compile
(
list
[
i
])
while
1
:
self
.
process_rawq
()
for
i
in
indices
:
m
=
list
[
i
]
.
search
(
self
.
cookedq
)
if
m
:
e
=
m
.
end
()
text
=
self
.
cookedq
[:
e
]
self
.
cookedq
=
self
.
cookedq
[
e
:]
return
(
i
,
m
,
text
)
if
self
.
eof
:
break
if
timeout
is
not
None
:
r
,
w
,
x
=
select
.
select
([
self
.
fileno
()],
[],
[],
timeout
)
if
not
r
:
break
self
.
fill_rawq
()
text
=
self
.
read_very_lazy
()
if
not
text
and
self
.
eof
:
raise
EOFError
return
(
-
1
,
None
,
text
)
def
test
():
def
test
():
...
@@ -398,7 +449,6 @@ def test():
...
@@ -398,7 +449,6 @@ def test():
Default host is localhost; default port is 23.
Default host is localhost; default port is 23.
"""
"""
import
sys
debuglevel
=
0
debuglevel
=
0
while
sys
.
argv
[
1
:]
and
sys
.
argv
[
1
]
==
'-d'
:
while
sys
.
argv
[
1
:]
and
sys
.
argv
[
1
]
==
'-d'
:
debuglevel
=
debuglevel
+
1
debuglevel
=
debuglevel
+
1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment