Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
S
scom
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ç
SulinOS
scom
Commits
59f0df60
Kaydet (Commit)
59f0df60
authored
Kas 06, 2008
tarafından
Bahadır Kandemir
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Move draft under development branch
üst
0f920b17
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
271 deletions
+0
-271
Net.Link.txt
belgeler/Net.Link.txt
+0
-271
No files found.
belgeler/Net.Link.txt
deleted
100644 → 0
Dosyayı görüntüle @
0f920b17
Net.Link Model Taslağı
======================
linkInfo():
Uygulamanın ağ bağlantısı kurmak ya da yönetmek için ihtiyaç duyduğu bilgileri sunar.
Örnek Fonksiyon Tanımı:
01 def linkInfo():
02 return {
03 "type": "wifi",
04 "name": "Wireless connection",
05 "modes": "device,device_mode,remote,remote_scan,net,auto,auth",
06 }
- type: Uygulamanın sağladığı bağlantı türünü ifade eden anahtar kelime
(wifi, net, ppp, ...)
- name: Bağlantı türüne ait açıklama. Yerelleştirilebilir.
- modes: Profil oluştururken kullanılabilecek metodlar ve özellikler ile ilgili bilgi sunar.
device : Bağlantı kurarken bir aygıt seçilmesi gerektiğini gösterir.
setConnection(profile, device) komutu ile belirlenebilir.
deviceList() komutu ile aygıt bilgisi alınabilir.
device_mode : Bağlantıda kullanılacak aygıt, birden fazla çalışma modu
desteklediğini (wireless kartlardaki adhoc, managed, ...
modları gibi) gösterir.
remote : Bağlantı kurarken uzak bir bağlantı noktası adresi verilmesi gerektiğini gösterir.
(ppp için telefon numarası, wifi için essid, ...)
setRemote(profile, remote_address) komutu ile belirlenebilir.
remote_scan : Uzak bağlantı tarama işlemi yapılabileceği anlamına gelir.
scanRemote(device_id) komutu ile tarama yapılabilir.
net : Bağlantı kurmak için adres belirlemek gerektiğini gösterir.
setAddresss(profile, mode="manual", address, mask, gateway)
komutu ile adres belirlenebilir.
auto : Adresin karşı taraf tarafından belirlenebileceği (DHCP gibi) anlamına gelir.
setAddresss(profile, mode="auto", address="", mask="", gateway="")
komutu kullanılabilir.
auth : Bağlantı kurarken kimlik doğrulama yapılabileceği anlamına gelir.
setAuthentication(profile, authmode, user, password) komutu ile doğrulama
methodu ve bilgileri belirlenebilir. Kullanılabilir modlar "auth_modes"
başlığında açıklanmıştır.
def authModes():
"auth" destekleniyorsa, kullanılabilir kimlik doğrulama methodlarını listelemek için kullanılır.
Örnek Fonksiyon Tanımı:
01 def authModes():
02 return (
03 ("wep", "WEP"),
04 ("wpa", "WPA"),
05 ("802.1x", "Dynamic WEP (802.1x)"),
06 )
İlk eleman method adı, ikincisi ise method tanımıdır. Method tanımları yerelleştirilebilir.
def authParameters(method):
"auth" destekleniyorsa, ilgili kimlik doğrulama methodunun ihtiyaç duyduğu bilgileri tanımlamak için kullanılır.
Bağlantı kurmak istendiğinde, "auth" modu destekleniyorsa,
Örnek Fonksiyon Tanımı:
01 def authParameters(method):
02 if method == "wep":
03 return (
04 ("password", "Password", "pass"),
05 )
06 elif method == "wpa":
07 return (
08 ("password", "Password", "pass"),
09 )
10 elif method == "802.1x":
11 return (
12 ("username", "Username", "text"),
13 ("password", "Password", "pass"),
14 ("cert_cli", "Client Certificate", "file"),
15 ("cert_ca", "CA Certificate", "file"),
16 ("keyfile", "Private Key", "file"),
17 )
18
19 return modes
İlk değer istenen değerin adını, ikincisi tanımını, üçüncüsü ise türünü belirtir. Tanım yerelleştirilebilir.
Kullanılabilir türler:
text : Metin girişleri için
pass : Parola girişleri için
file : Dosya girişleri için
setAuthMode(profile, mode):
"auth" modu destekleniyorsa, authModes() ile alınan modlardan birini profille ilişkilendirmek için kullanılır.
setAuthParameters(profile, auth_key, auth_value):
"auth" modu destekleniyorsa, authParameters() ile alınan alanları belirlemek için kullanır.
getAuthMode(profile):
"auth" modu destekleniyorsa, profille ilişkilendirilmiş auth modunu döndürür.
Yazılacak fonksiyon, aşağıdaki gibi bir çıktı vermelidir:
01 "802.1x"
getAuthParameters(profile):
Profilin kimlik doğrulama bilgilerini verir. Bu bilgiler güvenlik amacıyla
connectionInfo()'da bulunmaz.
Yazılacak fonksiyon, aşağıdaki gibi bir çıktı vermelidir:
01 {
02 "login": "bahadir",
03 "parola": "parolam",
04 "cert_cli": "/home/bahadir/.cert/cli.cert",
05 "cert_ca": "/home/bahadir/.cert/ca.cert",
06 "keyfile": "/home/bahadir/.cert/mykey",
07 }
def deviceModes():
"device_mode" destekleniyorsa, kullanılabilir aygıt modlarını listelemek için kullanılabilir.
Örnek Fonksiyon Tanımı:
01 def deviceModes():
02 return (
03 ("managed", "Managed"),
04 ("adhoc", "Ad Hoc"),
05 }
İlk eleman mod adı, ikincisi ise mod tanımdır. Mod tanımı yerelleştirilebilir.
def remoteName():
"remote" destekleniyorsa, uzak bağlantı noktayı belirtirken kullanılacak etiketi döndürür.
Örnek Fonksiyon Tanımı:
01 def remoteName():
02 return "Phone Number"
Yerelleştirilebilir.
scanRemote(device):
'remote' modu destekleniyorsa bağlanılabilir uzak noktaları taramak için kullanılır.
Yazılacak fonksiyon, aşağıdaki gibi bir çıktı vermelidir:
01 [
02 {
03 "remote": "HOME",
04 "encryption": "wep",
05 "mac": "00:00:00:00:00:00",
06 "channel": "11",
07 "mode": "managed",
08 "protocol": "IEEE 802.11g",
09 "quality": "54",
10 },
11 {
12 "remote": "APOINT",
13 "encryption": "wpa",
14 "mac": "11:11:11:11:11:11",
15 "channel": "11",
16 "mode": "managed",
17 "protocol": "IEEE 802.11g",
18 "quality": "12",
19 },
20 ]
NOT: Bu metodu wireless'tan başka kullanacak uygulama olmayacağı için Dict key'ler böyle kalabilir.
setRemote(profile, remote):
'remote' modu destekleniyorsa, uzaktaki noktanın adresini belirtmek için kullanılır.
Wireless için ESSID, PPP için telefon numarası, VPN için host:port bu şekilde belirtilebilir. Birden fazla
deviceList():
Uygulama tarafından kullanılabilen aygıt listesini verir. {"device_id": "Device Label", ...} formatında bir dictionary'dir.
Yazılacak fonksiyon, aşağıdaki gibi bir çıktı vermelidir:
O1 {
02 "pci:1106_3065_eth1": "VT6102 [Rhine-II] - VIA Technologies, Inc. (eth1)",
03 }
connections():
Oluşturulan profillerin listesini verir.
Yazılacak fonksiyon, aşağıdaki gibi bir çıktı vermelidir:
O1 [
02 "Ev",
03 "Ofis",
04 ]
connectionInfo(profile):
Bağlantıya ait bilgileri (kimlik doğrulama bilgisi hariç) gösterir.
Yazılacak fonksiyon, aşağıdaki gibi bir çıktı vermelidir:
01 {
02 "name": "Ev",
03 "device_id": "pci:1106_3065_eth1",
04 "device_name": "VT6102 [Rhine-II] - VIA Technologies, Inc. (eth1)",
05 "net_mode": "manual",
06 "net_address": "192.168.2.10",
07 "net_mask": "255.255.255.0",
08 "net_gateway": "192.168.2.1",
09 "state": "up",
00 }
NOT: Döndürülmesi gereken alanların listesi ve açıklamaları yazılmalı.
setConnection(profile, device):
Profili bir aygıtla ilişkilendirmek için kullanılabilir.
setDeviceMode(profile, mode):
"device_mode" destekleniyorsa, aygıt modu belirtmek için kullanılır.
deleteConnection(profile):
Profili silmek için kullanılabilir.
setAddress(profile, mode, address, mask, gateway):
'net' modu destekleniyorsa adres girmek girme için kullanılır.
'auto' modu destekleniyorsa mode olarak 'auto' verilerek DHCP ayarlanabilir
setNameService(profile, namemode, nameserver):
...
setState(profile, state):
'up' ile ilgili profil bağlantısını kurar, 'down' ile kapatır.
getState(profile):
Profilin bağlantı durumunu verir.
Yazılacak fonksiyon, aşağıdaki çıktılardan birini vermelidir:
"up <Adres>"
"down"
"inaccessible <Hata mesajı>"
"unavailable"
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